PTA 乙級 1007素數對猜想 C 實現

2021-09-27 09:39:06 字數 1190 閱讀 1276

讓我們定義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
直接兩個迴圈,外面迴圈遍歷並判斷差是否為2,內部迴圈判斷這個數是否是素數。

#include

#include

using

namespace std;

intmain()

}if(tag)

}

cout << num;

}

用python寫這樣會超時,需要對遍歷迴圈演算法進行改進。

已經通過了的實現方式是當這個數除以6還余1或5時再開始對這個數進行是否是素數的迴圈判斷。

附python**:

from math import sqrt

defprimepair

(n):

p =0 temp =

3for i in

range(5

,n+1,2

):if(i%6==

1or i%6==

5):for j in

range(3

,int

(sqrt(i))+

1,2)

:if(i%j ==0)

:break

else:if

(i-temp ==2)

: p = p+

1 temp = i

print

(p)n =

eval

(input()

)primepair(n)

PTA 乙級 1007 素數對猜想 C 數論

讓我們定義d n d n d n 為 d n p n 1 pn d n p n 1 p n dn p n 1 pn 其中p ip i pi 是第i個素數。顯然有d 1d 1 d1 1,且對於n 1有d nd n dn 是偶數。素數對猜想 認為 存在無窮多對相鄰且差為2的素數 現給定任意正整數n 10...

PTA 乙級1007 素數對猜想 20 分

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

PTA 1007 素數對猜想 C

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