让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N
(<105),请计算不超过N
的满足猜想的素数对的个数。
输入格式:
输入在一行给出正整数N
。
输出格式:
在一行中输出不超过N
的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
#include<stdio.h>
#include<math.h>
int sushu(int n)//定义一个判断素数函数
{
int i;
if (n==1) return 0;//1不是素数
else if(n==2)
{
return 1;//2是素数
}
else
{
for (i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
return 0;//大于2能整除的都不是素数
}
}
}
return 1;
}
int m[100000] = { 0 };//定义从0开始十万个数
int main()
{
int n, i, j,a=0,b=0,k=-1;
scanf("%d",&n);
for (i = 1; i <= n; i++)
{
if (sushu(i))//如果是素数
{
m[++k] = i;//素数放到数组里
if (k > 0)
{
a= m[k]-m[k-1];
if (a==2)
{
b++;
}
}
}
}
printf("%d", b);
return 0;
}