讓我們定義dn為:dn=pn+1−pn,其中pi是第i個素數。顯然有d1=1,且對於n>1有dn是偶數。「素數對猜想」認為「存在無窮多對相鄰且差為2的素數」。
現給定任意正整數n(<105),請計算不超過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。輸出格式 在一行中輸出不超...