1007 素数对猜想 (20分)
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N(<10^5 ),请计算不超过N的满足猜想的素数对的个数。
输入格式:
输入在一行给出正整数N。
输出格式:
在一行中输出不超过N的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
代码:
#include <stdio.h>
#include <math.h>
int Isprime(int N)
{
int i,isprime=1;
for(i=(int)sqrt(N);i>=2;i--){
if(N%i==0){
isprime=0;
}
}
return isprime;
}
int main()
{
int N;
scanf("%d",&N);
int Prime[N+1];
int i,j=2;
Prime[0]=2;
Prime[1]=3;
for(i=4;i<=N;i++){
if(Isprime(i)){
Prime[j]=i;
j++;
}
}
int count=0;
for(i=0;i+1<j;i++){
if(Prime[i+1]-Prime[i]==2){
count++;
}
}
printf("%d",count);
}