PAT 1007 素数对猜想

来源:互联网 发布:手机淘宝5.10.3旧版本 编辑:程序博客网 时间:2024/06/05 19:32

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

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

输入格式:每个测试输入包含1个测试用例,给出正整数N。

输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。

输入样例:
20
输出样例:
4
代码实现:

#include <iostream>#include <vector>#include <algorithm>#include <cstdio>#include <cmath>#include <cstdlib>#include <cstring>using namespace std;/* 判断一个数是不是素数 */bool isPrimeNum(const int num){    if(num == 2)    {        return true;    }    int len = (int)sqrt(num);    int i = 0;    for(i = 2; i <= len; i++)    {        if(num % i == 0)        {            return false;        }    }    return true;}int main(){    int N = 0;    int i = 0, counts = 0;    int lastPrime = 0;    cin >> N;    for(i = 3; i <= N; i++)    {        /* 如果是素数 */        if (true == isPrimeNum(i))        {            /* 判断是否符合条件 */            if (i - lastPrime == 2)            {                counts++;            }            lastPrime = i;        }    }    cout << counts << endl;}




0 0
原创粉丝点击