PAT Basic 1007

1007 素数对猜想

让我们定义dn​​为:dn​​=pn+1​​pn​​,其中pi​​是第i个素数。显然有d1​​=1,且对于n>1有dn​​是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。

现给定任意正整数N(<105​​),请计算不超过N的满足猜想的素数对的个数。

输入格式:

输入在一行给出正整数N

输出格式:

在一行中输出不超过N的满足猜想的素数对的个数。

输入样例:

20

输出样例:

4
  题解:从2开始循环到n,打一个素数表进行判断。
代码如下:
 1 #include<iostream>
 2 #include<math.h>
 3 
 4 using namespace std;
 5 
 6 bool f(int n)
 7 {
 8     bool ac = 1;
 9     for( int i = 3; i <= sqrt(n); i++)
10     {
11         if( n%i == 0)
12         {
13             ac = 0;
14             break;
15         }
16     }
17     return ac;
18 }
19 
20 int main()
21 {
22     int n,m = 0;
23     bool before = 0, k;
24     cin>>n;
25     for( int i = 1; i <= n; i+=2){
26         k = f(i);
27         if(before && k) {
28             m++;
29             before = 0;
30         }
31         else if(before && !k) before = 0;
32         else if(!before && k) before = 1;
33     } 
34     cout<<m<<endl;
35     return 0;
36 }

猜你喜欢

转载自www.cnblogs.com/yxp400/p/9447496.html