B 1007 素數對猜想 20 分

2021-10-25 17:07:53 字數 834 閱讀 5180

1007 素數對猜想 (20 分)

讓我們定義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~sqrt(n)內列舉(包括開頭結尾)可以承受10^5內資料

2~n/2內列舉最後一組資料會超時

歐式篩法都用不到,只有10^5     不過歐式篩法:nloglogn   與根號列舉法nlogn也差不了多少   歐式篩幾乎用不到了

#includeusing namespace std;

bool isprime(int n)

return true;

} int main()

coutconst int maxn=100000+10;

int prime[maxn]=,pnum=0;

bool p[maxn]=;//p[i]=0為素數 為1為合數

//歐式篩法篩出1~n內所有素數

void find_prime(int n)

} }} int main()

cout

}

B1007 素數對猜想

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

B1007 素數對猜想 20分 C語言

原題鏈結 易知所有素數都是奇數 因為偶數一定是2的倍數 只需要列舉1題目描述 讓我們定義d n 為 d n p n 1 p n 其中p i 是第i個素數。顯然有d 1 1,且對於n 1有d n 是偶數。素數對猜想 認為 存在無窮多對相鄰且差為2的素數 現給定任意正整數n 10 5 請計算不超過n的滿...

PAT乙級B1007 素數對猜想 20

讓我們定義 dn 為 dn pn 1 pn,其中 pi 是第i個素數。顯然有 d1 1 且對於n 1有 dn 是偶數。素數對猜想 認為 存在無窮多對相鄰且差為2的素數 現給定任意正整數n 105 請計算不超過n的滿足猜想的素數對的個數。輸入格式 每個測試輸入包含1個測試用例,給出正整數n。輸出格式 ...