【数论】【素数判定】CODEVS 2851 菜菜买气球

素数判定模板。

 1 #include<cstdio>
 2 #include<map>
 3 using namespace std;
 4 int a[2001],ans=-2147483647,l,r,n,sum[2001];
 5 bool is_prime(const int &x)
 6 {
 7     for(int i=2;i*i<x;i++) if(x%i==0) return false;
 8     return true;
 9 }
10 int main()
11 {
12     scanf("%d",&n);
13     for(int i=1;i<=n;i++)
14       {
15           scanf("%d",&a[i]);
16           sum[i]=sum[i-1]+a[i];
17       }
18     for(int i=1;i<=n;i++)
19       for(int j=i;j<=n;j++)
20         if(is_prime(sum[j]-sum[i-1]))
21           {
22               if(sum[j]-sum[i-1]>ans)
23                 {
24                     ans=sum[j]-sum[i-1];
25                     l=i; r=j;
26                 }
27           }
28     printf("%d %d %d\n",l,r,ans);
29     return 0;
30 }
时间: 2024-10-11 12:26:18

【数论】【素数判定】CODEVS 2851 菜菜买气球的相关文章

codevs 2851 菜菜买气球

dp加二分法 链接:http://codevs.cn/problem/2851/ 1 #include<iostream> 2 #include<vector> 3 #include<algorithm> 4 #include<cstdio> 5 #include<cstring> 6 #include<queue> 7 #include<cmath> 8 using namespace std; 9 10 int a[2

2851 菜菜买气球

2851 菜菜买气球 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 六一儿童节到了,菜菜爸爸带着菜菜来到了游乐园,菜菜可高兴坏了.这不,菜菜看到了一排卖气球的,便吵着闹着要买气球. 不过这些卖气球的也奇怪,他们都站成了一排,而且每个人每次都只卖一定数量的气球,多了不卖,少了也不卖. 菜菜爸爸已经打听好了这N个人每次卖的气球数量,忽然想考考菜菜:只能从连续的若干个人那里买气球,并且气球总数必须是质数,求最大的可行的气球总数. 这

菜菜买气球(codevs 2851)

题目描述 Description 六一儿童节到了,菜菜爸爸带着菜菜来到了游乐园,菜菜可高兴坏了.这不,菜菜看到了一排卖气球的,便吵着闹着要买气球. 不过这些卖气球的也奇怪,他们都站成了一排,而且每个人每次都只卖一定数量的气球,多了不卖,少了也不卖. 菜菜爸爸已经打听好了这N个人每次卖的气球数量,忽然想考考菜菜:只能从连续的若干个人那里买气球,并且气球总数必须是质数,求最大的可行的气球总数. 这个问题可难住了菜菜,他找到了你,请你帮忙计算该从哪个人买到哪个人,气球总数是多少. 输入描述 Input

Miller-Rabin算法 codevs 1702 素数判定 2

转载自:http://www.dxmtb.com/blog/miller-rabbin/ 普通的素数测试我们有O(√ n)的试除算法.事实上,我们有O(slog³n)的算法. 定理一:假如p是质数,且(a,p)=1,那么a^(p-1)≡1(mod p).即假如p是质数,且a,p互质,那么a的(p-1)次方除以p的余数恒等于1.(费马小定理) 该定理的逆命题是不一定成立的,但是令人可喜的是大多数情况是成立的. 于是我们就得到了一个定理的直接应用,对于待验证的数p,我们不断取a∈[1,p-1]且a∈

1702 素数判定 2[[一中数论随堂练]

1702 素数判定 2 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 一个数,他是素数么? 设他为P满足(P<=263-1) 输入描述 Input Description P 输出描述 Output Description Yes|No 样例输入 Sample Input 2 样例输出 Sample Output Yes 数据范围及提示 Data Size & Hint 算法导论——数论那一节注意Carmich

codevs——1430 素数判定

1430 素数判定 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 青铜 Bronze 题解 题目描述 Description 质数又称素数.指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数. 素数在数论中有着很重要的地位.比1大但不是素数的数称为合数.1和0既非素数也非合数.质数是与合数相对立的两个概念,二者构成了数论当中最基础的定义之一.基于质数定义的基础之上而建立的问题有很多世界级的难题,如哥德巴赫猜想等.算术基本定理证明每个大于1的正整数都可以写成素

1702 素数判定 2

1702 素数判定 2 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 一个数,他是素数么? 设他为P满足(P<=263-1) 输入描述 Input Description P 输出描述 Output Description Yes|No 样例输入 Sample Input 2 样例输出 Sample Output Yes 数据范围及提示 Data Size & Hint 算法导论——数论那一节注意Carmich

1430 素数判定

1430 素数判定 时间限制: 1 s 空间限制: 1000 KB 1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 using namespace std; 5 int vis[30001]; 6 int main() 7 { 8 int n; 9 cin>>n; 10 for(int i=2;i<=n;i++) 11 { 12 if(vis[i]==0) 13 { 14 for(

素数判定相关资料

素数(质数)的判定 (1)最基本素数判定方法大家熟悉,只用看看2到n(或n的平方根)之间有没有n的约数: #include<stdio.h> void main() { int i,n; scanf("%d",&n); for(i=2;i<n;i++) if(n%i==0)break; if(i<n||n==1)puts("No"); else puts("Yes"); } 此方法适用于判定较少数,数据量大时会超时