1007 素数对猜想 (20 分)(含素数判定

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

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

输入格式:

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

输出格式:

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

输入样例:

20
输出样例:

4
作者: CHEN, Yue
单位: 浙江大学
时间限制: 200 ms
内存限制: 64 MB

#include 
#include 
using namespace std;
int main()
{
    int N;
    cin >> N;
    int res = 0;
    int a=2,b=3;
    for(int i=5; i<=N; i++){      //  i从5开始 因为 2 3 并不是素数对
        bool temp = true;
        for(int j=2; j<=sqrt(i); j++){  //素数判定 因子都是小于该数开平方的,这样就不需要暴力计算 减少计算量
            if(i%j == 0){
                temp = false;
                break;
            }
        }
        if(temp){
            a = b;
            b = i;
            if((b-a)==2)
                res++;
        }
    }
    cout << res << endl;
    return 0;
}

你可能感兴趣的:(1007 素数对猜想 (20 分)(含素数判定)