让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N
(<),请计算不超过N
的满足猜想的素数对的个数。
输入格式:
输入在一行给出正整数N
。
输出格式:
在一行中输出不超过N
的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
1 #include <iostream>
2 #include<cmath> //cmath是C++里的头文件 math.h是C里面的头文件
3 #include<cstring>
4 using namespace std;
5
6 int main(){
7 int cnt=0;
8 bool isPrime;
9 //输入要判断的数
10 int n;
11 cin>>n;
12 //给数组赋初值,用来存储小于n的素数
13 int prime[n];
14 memset(prime,0,sizeof(prime));
15 //判断素数
16 for(int i=2;i<=n;i++){
17 isPrime=true;
18 for(int j=2;j<=sqrt(i);j++){
19 if(i%j==0){
20 isPrime=false;
21 break;
22 }
23 }
24 if(isPrime){
25 prime[cnt++]=i;
26 }
27 }
28 cnt=0;
29 for(int i=0;i<=n;i++){
30 if(prime[i+1]-prime[i]==2){
31 cnt++;
32 }
33 }
34 cout<<cnt;
35 return 0;
36 }