让我们定义d
n
为:d
n
=p
n+1
−p
n
,其中p
i
是第i个素数。显然有d
1
=1,且对于n>1有d
n
是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N(<10
5
),请计算不超过N的满足猜想的素数对的个数。
#include<stdio.h>
#include<math.h>
int isprime(int n)
{
for(int i=2;i<=sqrt(n);i++) // 时间限制最小
if(n%i==0) return 0;
return 1;
}
/* int isprime(int n) //时间限制稍大
{
for(int i=2;i<n;i++)
if(n%i==0) return 0;
return 1;
}*/
int main()
{
int n,a[100000],count=0;
int j=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
if(isprime(i))
{
a[j]=i;
j++;
}
}
for(int i=0;i<j;i++)
{
if(a[i+1]-a[i]==2) count++;
}
printf("%d\n",count);
return 0;
}