#736: 請各位幫忙研究一下(TLE)


yy6752 (yy6752)

學校 : 桃園市立經國國民中學
編號 : 3087
來源 : [140.136.150.93]
最後登入時間 :
2018-01-08 16:14:53
a007. 判斷質數 | From: [118.161.1.157] | 發表日期 : 2008-10-25 00:29

#include<iostream>     
using namespace std;     
    
int main(){
    long int i,n;
    while (cin >> i){
          if (i==1){
              cout << "非質數" << endl;
          }
          else if (i==2){
              cout << "質數" << endl;
          }
          else{
              for (n=2;n<=i-1;n++){
                  if (i%n==0){
                      cout << "非質數" << endl;
                      break;
                  }
                  else if (i%n!=0 && n==i-1){
                      cout << "質數" << endl;
                  }
              }    
          }
          
    }
    return 0;
}

順便請各位幫我看看有哪裡錯~謝謝!

 
#737: Re:請各位幫忙研究一下(TLE)


yy6752 (yy6752)

學校 : 桃園市立經國國民中學
編號 : 3087
來源 : [140.136.150.93]
最後登入時間 :
2018-01-08 16:14:53
a007. 判斷質數 | From: [118.161.1.157] | 發表日期 : 2008-10-25 00:31

抱歉......忘了說明,程式是C++的

 
#742: Re:請各位幫忙研究一下(TLE)

Unknown User

a007. 判斷質數 | From: [218.211.230.114] | 發表日期 : 2008-10-25 16:44

輸入的整數最大到 2147483647,如果輸入這個數字,你的程式會做二十幾億個除法才發現它是質數,自然會超時。 
#819: Re:請各位幫忙研究一下(TLE)


FishHead (FishHead)

學校 : 雅礼中学
編號 : 3746
來源 : [218.77.114.9]
最後登入時間 :
2008-11-01 15:47:47
a007. 判斷質數 | From: [218.77.114.9] | 發表日期 : 2008-11-01 15:54

#include<iostream>     using namespace std;         int main(){    long int i,n;    while (cin >> i){          if (i==1){              cout << "非質數" << endl;          }          else if (i==2){              cout << "質數" << endl;          }          else{              for (n=2;n<=i-1;n++){                  if (i%n==0){                      cout << "非質數" << endl;                      break;                  }                  else if (i%n!=0 && n==i-1){                      cout << "質數" << endl;                  }               }              }              }    return 0;}

 順便請各位幫我看看有哪裡錯~謝謝!



大哥,判质数只要判断2和√N内的奇数就可以了,没必要判那么多的.. 
ZeroJudge Forum