【C++】浙大PAT (Basic Level)1007. 素數對猜想 (20)
阿新 • • 發佈:2019-01-07
1007. 素數對猜想 (20)
時間限制 400 ms記憶體限制 32000 kB
程式碼長度限制 8000 B
判題程式 Standard 作者 CHEN, Yue
讓我們定義 dn 為:dn = pn+1 - pn,其中 pi 是第i個素數。顯然有 d1=1 且對於n>1有 dn 是偶數。“素數對猜想”認為“存在無窮多對相鄰且差為2的素數”。
現給定任意正整數N (< 105),請計算不超過N的滿足猜想的素數對的個數。
輸入格式:每個測試輸入包含1個測試用例,給出正整數N。
輸出格式:每個測試用例的輸出佔一行,不超過N的滿足猜想的素數對的個數。
輸入樣例:20輸出樣例:
4開頭==寫成了=所以老不對,死在這種地方。習慣斷點比較來判斷哪裡出錯。另外素數開頭超時了,還有,一些很細微的地方,例如在5以下的時候的判斷。
#include<iostream> #include<string> using namespace std; bool issushu(int n){ bool flag=true; for(int j=3;j*j<=n;j++){ if(n%j==0){ flag=false; //能整出,則false } } return flag; } int main(){ unsigned int n; cin>>n; unsigned int i=7,count=1; if(n<5) cout<<'0'; else{ bool front,now; front=true; //3是素數 now=true; //5是素數 while(i<=n){ front=now; now=issushu(i); if(now==true&&front==true){ count++; } i=i+2; } cout<<count; } system("pause"); return 0; }