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


yy6752 (yy6752)


#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)


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

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


snail (蝸牛)


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


FishHead (FishHead)


#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内的奇数就可以了,没必要判那么多的..