1007 素数对猜想 (20 分)
Posted ygjojo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1007 素数对猜想 (20 分)相关的知识,希望对你有一定的参考价值。
1007 素数对猜想 (20 分)
让我们定义d?n??为:d?n??=p?n+1??−p?n??,其中p?i??是第i个素数。显然有d?1??=1,且对于n>1有d?n??是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N
(<10?5??),请计算不超过N
的满足猜想的素数对的个数。
输入格式:
输入在一行给出正整数N
。
输出格式:
在一行中输出不超过N
的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
分析:比较麻烦的一点在于3-2等于1,但还是素数对,所以进行了单独考虑
1 #include<iostream> 2 #include<cmath> 3 #include<algorithm> 4 using namespace std; 5 int main() 6 { 7 int n; 8 while(cin>>n) 9 { 10 int flag=0,a[100000],num=0; 11 for(int i=5;i<=n;i++) 12 { 13 int k=sqrt((double)i); 14 int s=0; 15 for(int j=2;j<=k;j++) 16 { 17 if(i%j==0) 18 { 19 s=1; 20 break; 21 } 22 } 23 if(s==0) 24 { 25 a[flag++]=i; 26 } 27 } 28 for(int i=1;i<flag;) 29 { 30 if((a[i]-a[i-1])==2) 31 { 32 num++; 33 i=i+2; 34 } 35 else 36 i++; 37 } 38 if(n<=2) 39 cout<<0<<endl; 40 else if(n==3) 41 cout<<1<<endl; 42 else 43 cout<<num+1<<endl; 44 } 45 46 }
以上是关于1007 素数对猜想 (20 分)的主要内容,如果未能解决你的问题,请参考以下文章