1007 素数对猜想 (20 分)
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。
输入格式:
输入在一行给出正整数N。
输出格式:
在一行中输出不超过N的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
思路:第一步,先找到正整数N以内的全部素数,并用一个数组存储起来,第二步将存储好的素数通过题目给出的d(n)定义式子判断是否为素数对.(这里的代码放进去PAT里面的编译器会显示段错误,俺也不知道是为什么。)
#include <stdio.h>
int main(void)
{
int num[100];
int N, count = 0;
int i,j,ret;
int k = 1;
num[0] = 1;
scanf("%d",&N);
for ( i = 2; i < N; i++)//找素数
{
ret = 1;
for ( j =2; j < i; j++)
if (i%j == 0){
ret = 0;
break;
}
if (ret == 1){
num[k] = i;
k++;
}
}
for ( i = 0; i < k-1; i++){//判断是否输入
if (num[i + 1] - num[i] == 2)
count++;
}
printf("%d", count);
return 0;
}