PAT 乙级 1007 素数对猜想 (20分)

我的个人网站 http://www.cheese.ren/

博客来源 http://www.cheese.ren/blog/blog/215

欢迎交换友链 :-)


1007 素数对猜想 (20分)

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

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

 

输入格式:

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

 

输出格式:

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

 

输入样例:

20

 

输出样例:

4

代码:

#include <bits/stdc++.h>

using namespace std;

int info[100000]={0};

//判断素数
bool isPrime(int index) {
    bool flag=true;
    for (int i=2; i<=sqrt(index); i++) {
        if (index % i == 0) {
            flag = false;
            break;
        }
    }
    return flag;
}

//计算素数对
void primeCount() {
    info[0] = info[1] = info[2] = info[3] = info[4] = 0;
    for (int i=5; i<100000; i++) {
        if (isPrime(i) && isPrime(i-2))
            info[i] = info[i-1] + 1;
        else
            info[i] = info[i-1];
    }
}

int main() {
    primeCount();
    int n;
    while (cin >> n) {
        cout << info[n] << endl;
    }
    return 0;
}

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页