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 分)的主要内容,如果未能解决你的问题,请参考以下文章

1007 素数对猜想 (20 分)

乙_1007 素数对猜想 (20分)

1007 素数对猜想 (20分)

PAT乙级 1007 素数对猜想 (20 分)

1007 素数对猜想 (20 分)

1007 素数对猜想 (20 分)