让我们定义dn为:dn=p(n+1)−p(n),其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N
(<105),请计算不超过N
的满足猜想的素数对的个数。
输入格式:
输入在一行给出正整数N
。
输出格式:
在一行中输出不超过N
的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
1 #include<stdio.h>
2 #include<math.h>
3 int isprime(int num);
4 int main()
5 {
6 int n,count=0;
7 scanf("%d",&n);
8 for(int i=2;i<=n;i++)
9 {
10 if(isprime(i)==1&&isprime(i+2)==1&&(i+2)<=n)
11 count++;
12 }
13 printf("%d
",count);
14 return 0;
15 }
16 int isprime(int num)
17 {
18 if(num==0||num==1)//防止有坑
19 return 0;
20 int j=(int)sqrt(num);//强制取整
21 for(int i=2;i<=j;i++)
22 if(num%i==0)
23 return 0;
24 return 1;//反过来都不被2到j整除,则为素数,返回值1
25 }