PAT乙级C语言1007 素数对猜想

1007 素数对猜想 (20 分)
让我们定义d​n为:d​n=p​n+1 − pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。

现给定任意正整数N(<10的5次方),请计算不超过N的满足猜想的素数对的个数。

输入格式:
输入在一行给出正整数N。

输出格式:
在一行中输出不超过N的满足猜想的素数对的个数。

输入样例:
20
输出样例:
4

#include 
#include 
int main()
{
    int k,i;  // m 的平方根 
    int n,a[10000], m = 1;
	int sum = 0;

    scanf("%d",&n);//输入正整数 
    
    a[0] = 2;
	for(long int j = 3; j <= n ;j = j + 2) //之前j没有设成小于等于,所以第二个测试点一直没过去,认真读题才发现有误
	{
    	for(i=2;i<=(long int)sqrt( (double)j );i++)
        	if(j%i==0)
       	 		break;
	 	if(i>(long int)sqrt( (double)j ))
        	a[m++] = j;
	}
	
	for(int i = 1;i<=m;i++)
	{
		if( 2 == a[i] - a[i-1])
		{
			sum++;
		//	printf("%d %d\n",a[i],a[i-1]);
		}
	}
	printf("%d\n",sum);
    return 0;
}

你可能感兴趣的:(PAT乙级)