PAT 乙级 1007 素数对猜想

让我们定义 d n d_n dn d n = p n + 1 − p n d_n=p_{n+1}-p_n dn=pn+1pn,其中 p i p_i pi是第i个素数。显然有 d 1 = 1 d_1=1 d1=1,且对于n>1有 d n d_n dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N(< 1 0 5 10^5 105),请计算不超过N的满足猜想的素数对的个数。

输入格式:

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

输出格式:

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

输入样例:

20

输出样例:

4

代码

// 1.找出所有素数
// 2.判断相邻素数之差
#include
#include
#include
#include

bool Judge(int n_temp) // 判断素数
{
    int sq = (int)sqrt((double)n_temp);
    for(int i=2; i<=sq; i++ ){
        if (n_temp%i == 0){
            return false;
        } 
    }
    return true;
}
int main()
{
    int num,n1,n2,count;
    n1 = 3;
    count = 0;
    scanf("%d",&num);
    
    for (int i = 5; i <= num; i++)
    {
        if (Judge(i))
        {
            n2 = i;
            if (n2 - n1 == 2)
            {
                count++;
            }
            n1 = n2;
            
        }
    }
    printf("%d",count);
    return 0;
}

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