讓我們定義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**:
#include
#include
bool judgesu
(int n)
for(
int i=
2;ireturn true;
}int
main()
}int result=0;
for(
int p=i-
1;p>
0;p--)}
printf
("%d"
,result)
;return0;
}
//超時了只得了18分,再改進一下,感覺判斷素數那個函式實在太慢了
//24的因數有1、2、3、4、6、8、12、24
按定義應該用2-23去除,但經過分析可以發現
1×24、2×12、3×8、4×6
如果2、3、4是某個數的因數,那麼另外幾個數也是,反之也一樣
所以為提高效率,可以只檢查小於該數平方根的那些數,如24的平方根大於4小於5,檢查2-4就可以了
#include
#include
bool judgesu
(int n)
for(
int i=
2;i<=
sqrt
(n);i++)}
return true;
}int
main()
}int result=0;
for(
int p=i-
1;p>
0;p--)}
printf
("%d"
,result)
;return0;
}
成功!爺笑了 PAT考試乙級1007之素數對猜想
題目 讓我們定義d n為 d n pn 1 pn,其中p i是第i個素數。顯然有d1 1,且對於n 1有dn是偶數。素數對猜想 認為 存在無窮多對相鄰且差為2的素數 現給定任意正整數n 105 請計算不超過n的滿足猜想的素數對的個數。輸入格式 輸入在一行給出正整數n。輸出格式 在一行中輸出不超過n的...
pat乙級 素數對猜想
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乙級 素數對猜想
讓我們定義dn 為 dn pn 1 pn,其中pi是第i個素數。顯然有d1 1,且對於n 1有dn 是偶數。素數對猜想 認為 存在無窮多對相鄰且差為2的素數 現給定任意正整數n 10 5 請計算不超過n的滿足猜想的素數對的個數。輸入在一行給出正整數n。在一行中輸出不超過n的滿足猜想的素數對的個數。2...