題目
讓我們定義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 協議》,轉載必須註明作者和本文連結