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 }