PAT乙級考試記錄之素數對猜想

2021-09-29 22:07:22 字數 1235 閱讀 8544

讓我們定義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...