PAT乙1007 素數對猜想

2021-10-02 13:18:32 字數 868 閱讀 7334

讓我們定義d​n​​為:d​n​​=p​n+1​​−p​n​​,其中p​i​​是第i個素數。顯然有d​1​​=1,且對於n>1有d​n​​是偶數。「素數對猜想」認為「存在無窮多對相鄰且差為2的素數」。

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

輸入在一行給出正整數n

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

20
4
這題主要思路就是把不超過n的所有的素數算出來,然後遍歷一下,是否滿足差為2的相鄰素數,滿足就在計數中+1。然後輸出總數即可。這題核心在於計算素數,素數就是我們小學的時候學的那個質數,即只有1和本身是公因數的數。最笨的辦法就是進行遍歷相除,當前的數與從2開始一直遍歷到比自己小1的那個數進行求餘,當出現餘數為0時,則不為素數,否則為素數。用這個方式進行求解,在問題提交時,會出現超時的問題。所以,為了提高查詢素數的效率,我們只需比較到當前數的開根號即可。因為乙個數的公因數都是成對出現的,開根號的情況下,只需要判斷少量的引數,這樣就可以提公升計算效率了。

#pragma warning(disable:4996)

#include #include using namespace std;

int main()

for (int i = 2; i < count; i++)//計算總和

if (prime[i] - prime[i - 1] == 2)

sum++;

printf("%d", sum);

return 0;

}

PAT乙1007 素數對猜想

讓我們定義d n 為 d n p n 1 p n 其中p i 是第i個素數。顯然有d 1 1,且對於n 1有d n 是偶數。素數對猜想 認為 存在無窮多對相鄰且差為2的素數 現給定任意正整數n 10 5 請計算不超過n的滿足猜想的素數對的個數。輸入格式 輸入在一行給出正整數n。輸出格式 在一行中輸出...

PAT(乙) 1007 素數對猜想 20

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 讓我們定義 dn 為 dn pn 1 pn,其中 pi 是第i個素數。顯然有 d1 1 且對於n 1有 dn 是偶數。素數對猜想 認為 存在無窮多對相鄰且差為2的素數 現...

PAT乙1007素數對猜想(C語言)

個人水平有限,如有不足請指出十分感謝。1.題目理解 在給定的整數範圍內找到所有滿足要求的素數對。素數對的條件 相鄰且的絕對值差為2 2.解題思路 1.首先找到第乙個素數 a 在找到與其相鄰的下乙個素數 b 判斷是否滿足條件,如果不滿足,則將b作為第乙個素數,重複上述操作 滿足則計數器加一,將b作為第...