[PAT B] 1007 素數對猜想

Squ1rrel發表於2019-12-25

題目

讓我們定義dn為:dn=pn+1 −pn,其中pi是第i個素數。顯然有d1=1,且對於n>1有dn是偶數。“素數對猜想”認為“存在無窮多對相鄰且差為2的素數”。

現給定任意正整數N(<10^5 ),請計算不超過N的滿足猜想的素數對的個數。

輸入格式:

輸入在一行給出正整數N。

輸出格式:

在一行中輸出不超過N的滿足猜想的素數對的個數。

輸入樣例:

20

輸出樣例:

4

思路分析

暴力檢索顯然是 O(n^2),但是隻要黎曼猜想還叫黎曼猜想,素數分佈情況就還是沒被完全發掘的

先暴力一下,以後繼續尋找其他方法

程式碼

#include <iostream>

using namespace std;

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

int main() {
    int n;
    int count = 0;
    cin >> n;
    for (int i = 2; i <= n - 2; i++) {
        if (isPrime(i) && isPrime(i + 2)) {
            count++;
        }

    }
    cout << count;
    return 0;
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結
辛勞 篤定 輕苦 微甜 ----汪曾祺

相關文章