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