#2185: 為什麼是tle??


s936620 (kp)

學校 : 不指定學校
編號 : 4638
來源 : [114.27.132.185]
最後登入時間 :
2012-07-12 16:08:46
a007. 判斷質數 | From: [219.81.196.3] | 發表日期 : 2009-07-23 18:19

#include <iostream>

using namespace std;

int main()
{
   
int num;
int i,j=0;

cin>>num;

 if (num == 1 )
 {
     cout<<"非質數"<<endl;    
 }
 else
 {
  for(i=2;i<num;i++)
   {
      if(num%i==0)
       {
         j++;
         break;
       }
   }
   if(j==0) {  cout<<"質數"<<endl; }
   else  {  cout<<"非質數"<<endl;  }
}
system("pause");
}

送出後一直出現TLE

但改成這樣後卻變成WA(line2)

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
   
int num;
int i,j=0;

cin>>num;

 if (num == 1 )
 {
     cout<<"非質數"<<endl;    
 }
 else
 {
  for(i=2;i<sqrt(num);i++)
   {
      if(num%i==0)
       {
         j++;
         break;
       }
   }
   if(j==0)
   {
       cout<<"質數"<<endl;
   }
   else
   {
       cout<<"非質數"<<endl;
   }
}
system("pause");
}


哪裡錯了呢?

 

 
#2187: Re:為什麼是tle??


morris1028 (碼畜)

學校 : 國立花蓮高級中學
編號 : 3529
來源 : [114.37.59.62]
最後登入時間 :
2021-07-12 19:00:43
a007. 判斷質數 | From: [118.161.223.46] | 發表日期 : 2009-07-23 19:40

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
   
int num;


while(cin>>num)
{int i,j=0;
  for(i=2;i<=sqrt(num);i++)
   {
      if(num%i==0)
       {
         j++;
         break;
       }
   }
   if(j==0)
   {
       cout<<"質數"<<endl;
   }
   else
   {
       cout<<"非質數"<<endl;
   }
}
system("pause");
}

基本上就是紅色的部份,需要重複輸入還有 開根號要涵蓋= 還有一點是 題目已經有說過 不會輸入的數>=2 了 所以不用加1個判斷  而且1不是質數

 
ZeroJudge Forum