1007 素数对猜想 (20 分)

原题链接
[PAT 乙级]1007 素数对猜想 (20 分)


用素数打表实现prime记录所有素数即可。

void getprime(int n) {
    book[1] = book[0] = 1;
    for (int i = 2; i <= n;i ++) {
        if (book[i] == 0) {
            prime.push_back(i);
            for (int j = i + i; j <= n; j += i) {
                book[j] = 1;
            }
        }
    }
}

代码如下:

#include<iostream>
#include<vector>
using namespace std;
vector<int >prime;
bool book[100010];
void getprime(int n) {
    book[1] = book[0] = 1;
    for (int i = 2; i <= n;i ++) {
        if (book[i] == 0) {
            prime.push_back(i);
            for (int j = i + i; j <= n; j += i) {
                book[j] = 1;
            }
        }
    }
}
int main () {
    int n, cnt = 0;
    cin >> n;
    getprime(n);
    prime.push_back(99999999);
    for (int i = 1;prime[i] <= n; i++) {
        if(prime[i] - prime[i - 1] == 2) {
            cnt ++;
        }
    }
    cout << cnt;
    return 0;
}

相关文章:

  • 2021-12-25
  • 2021-06-30
  • 2021-12-06
  • 2021-05-11
  • 2021-10-25
  • 2021-09-16
  • 2021-10-12
  • 2021-07-25
猜你喜欢
  • 2021-12-27
  • 2021-12-09
  • 2021-05-14
  • 2021-11-18
  • 2021-07-07
  • 2021-12-23
  • 2021-08-24
相关资源
相似解决方案