讓我們定義 dn 為:dn = pn+1 - pn,其中 pi 是第i個素數。顯然有 d1=1 且對於n>1有 dn 是偶數。「素數對猜想」認為「存在無窮多對相鄰且差為2的素數」。
現給定任意正整數n (< 105),請計算不超過n的滿足猜想的素數對的個數。
輸入格式:每個測試輸入包含1個測試用例,給出正整數n。
輸出格式:每個測試用例的輸出佔一行,不超過n的滿足猜想的素數對的個數。
輸入樣例:
20 輸出樣例:
4輸入n;
找出所有不大於n的素數,存入vector;
-判斷乙個數是否為素數,即只能被1和本身整除;
在vector裡遍歷找出所有相差為2的素數對;
這裡要注意素數判斷程式的速度,迴圈到sqrt(n)即可;
#include
#include
#include
using
namespace
std;
bool is_prime(int val)
if (val % 2 == 0)
for (int i = 3; i <= sqrt(val); i+=2)
}return1;}
int main()
}if (primes.empty())
for (auto it = primes.begin(); it != (primes.end()-1); ++it)
}cout
<< cnt << endl;
system("pause");
return
0;}
PAT 乙級練習題 1007
讓我們定義 dn 為 dn pn 1 pn,其中 pi 是第i個素數。顯然有 d1 1 且對於n 1有 dn 是偶數。素數對猜想 認為 存在無窮多對相鄰且差為2的素數 現給定任意正整數n 105 請計算不超過n的滿足猜想的素數對的個數。輸入格式 每個測試輸入包含1個測試用例,給出正整數n。輸出格式 ...
PAT乙級B1007 素數對猜想 20
讓我們定義 dn 為 dn pn 1 pn,其中 pi 是第i個素數。顯然有 d1 1 且對於n 1有 dn 是偶數。素數對猜想 認為 存在無窮多對相鄰且差為2的素數 現給定任意正整數n 105 請計算不超過n的滿足猜想的素數對的個數。輸入格式 每個測試輸入包含1個測試用例,給出正整數n。輸出格式 ...
B1007 素數對猜想
讓我們定義dn為 dn pn 1 pn,其中pi是第i個素數。顯然有d1 1,且對於n 1有dn是偶數。素數對猜想 認為 存在無窮多對相鄰且差為2的素數 現給定任意正整數n 105 請計算不超過n的滿足猜想的素數對的個數。輸入格式 輸入在一行給出正整數n。輸出格式 在一行中輸出不超過n的滿足猜想的素...