1007 素数对猜想
让我们定义d n为:d n=p n+1−p n,其中p i是第i个素数。显然有d 1=1,且对于n>1有d n是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N(<10的5次方),请计算不超过N的满足猜想的素数对的个数。
输入格式:
输入在一行给出正整数N。
输出格式:
在一行中输出不超过N的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
#include <stdio.h>
#include <math.h>
int main()
{
long n;
int i, count = 0;
int sushu(long n);
scanf("%ld", &n);
for (i = 3; i <= n; i++)
{
if (sushu(i) + sushu(i - 2) == 2)
{
count++;
// printf("%d %d\n",sushu(i),sushu(i-2));
}
}
printf("%d", count);
return 0;
}
int sushu(long n)
{
int i, m;
m = sqrt(n);
if (n == 1)
{
return 0;
}
else
{
for (i = 2; i <= m; i++)
{
if (n % i == 0)
break;
}
if (i > m)
{
return 1;
}
else
{
return 0;
}
}
}
// 素数2 3 5 7 11 13 17
// 19、23 29 31 37 41、43、47 23、29、53、59、83、89 97
// d1=1 2 2 4 2 4 2 4 6 2 6 4 2 4 6 6 4 6 4 6 8
// 没有规律
// 第一步 求出n以内所有素数
// 第二步 若相差为2 count++