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 <iostream>
#include <cmath>
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;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容