1. 程式人生 > >【C++】浙大PAT (Basic Level)1007. 素數對猜想 (20)

【C++】浙大PAT (Basic Level)1007. 素數對猜想 (20)

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;
}