【算法笔记】B1007 素数对猜想

1007 素数对猜想 (20 分)

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

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

输入格式:

输入在一行给出正整数N

输出格式:

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

输入样例:

20

输出样例:

4

分析:
只需找到符合是素数且+2也是素数的数,其中找素数和判断素数可以优化。https://blog.csdn.net/afei__/article/details/80638460

CODE:

#include<iostream>
#include<math.h>
using namespace std;

bool isPrime(int n){
    for(int i = 2;i*i <= n;i ++){
        if(n % i == 0)
            return false;
    }
    return true;
}

int main(){
    int n,num=0;
    cin>>n;
    for(int i=2;i+2<=n;i++){
        if(isPrime(i)&&isPrime(i+2))
            num++;
    }
    cout<<num;
    return 0;
}
原文地址:https://www.cnblogs.com/chunlinn/p/10497515.html