×
解除綁定,重新設定系統帳號的密碼
您的系統帳號 ID:
您的系統帳號:
您的帳號暱稱:
設定新密碼:
設定新密碼:
×
請輸入要加入的「課程代碼」
請向開設課程的使用者索取「課程代碼」
分類題庫
解題動態
排行榜
討論區
競賽區
登入
註冊
發表新討論
#6148: 一直逾時 不知道問題在哪裡>"<
silentwait
(燒燒)
學校 : 國立中央大學
編號 : 10486
×
傳送站內訊息
傳給:
主題:
內容:
來源 : [140.115.227.87]
最後登入時間 :
2014-09-16 11:28:22
a007.
判斷質數
| From: [140.115.227.87] | 發表日期 : 2011-12-08 22:34
以下是程式碼
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int number,des=1,bb=0;
cin >> number;
while( number >= 2 && number <= 2147483647 ){
bb = sqrt((double)number);
for(int i=2; i<=bb; i++){
if( (number%i) == 0){
des = 0;
break;
}
else
des = 1;
}
if(des == 0)
cout << "非質數" << endl;
else
cout << "質數" << endl;
cin >> number;
}
return 0;
}
試了很久還是超過時間不知道問題在哪裡
謝謝好心人士幫忙解答>"<
#6149: Re:一直逾時 不知道問題在哪裡>
yihshyng223
(Mac)
學校 : 國立臺中第一高級中學
編號 : 20752
×
傳送站內訊息
傳給:
主題:
內容:
來源 : [140.114.221.118]
最後登入時間 :
2015-03-08 15:43:15
a007.
判斷質數
| From: [113.61.202.247] | 發表日期 : 2011-12-10 15:19
以下是程式碼
#include
#include
using namespace std;
int main()
{
int number,des=1,bb=0;
cin >> number;
while( number >= 2 && number <= 2147483647 ){
bb = sqrt((double)number);
for(int i=2; i<=bb; i++){
if( (number%i) == 0){
des = 0;
break;
}
else
des = 1;
}
if(des == 0)
cout << "非質數" << endl;
else
cout << "質數" << endl;
cin >> number;
}
return 0;
}
試了很久還是超過時間不知道問題在哪裡
謝謝好心人士幫忙解答>"<
你sqrt那邊不用轉成double呀,反正bb都是int了,而且其實也不用宣告des,可以用continue之類的技巧來判斷,像這樣:
(int j,input;)
j=sqrt(input);
for(int m=2;m<=j;m++){
if(input%m!=0){continue;}
else{cout<<"非質數\n";goto held;}
}
cout<<"質數\n";
held:m=0;
...這當然不是全部啦,但你應該知道意思
ZeroJudge Forum