素数对猜想PTA
让我们定义n为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。 输入格式: 输入在一行给出正整数N。 输出格式: 在一行中输出不超过N的满足猜想的素数对的个数。 输入样例: 20 输出样例: 4**
```c
#include<stdio.h>
#include<math.h>
int isprime(int x)
{
int i,flag=1;
if(x==1) flag=0;
for(i=2;i<=sqrt(x);i++)
{
if(x%i==0) flag=0;
}
return flag;
}
int main()
{
int N,m=0,i,a[100000],j=0;
scanf("%d",&N);
for(i=1;i<=N;i++)
{
if(isprime(i))
{
a[m]=i;
m++;
}
}
for(i=0;i<m;i++)
{
if(a[i+1]-a[i]==2) j++;
}
printf("%d",j);
return 0;
}
- 总是会犯一些小毛病,尤其是临界值位置
比如isprime函数for语句循环条件是**i<=sqrt()**,之前写的少了等于号,调试的时候发现4也成了素数。。