#1080: 不知哪裡錯了( TLE)


rex6l (魔の宇~)

學校 : 臺北市立成功高級中學
編號 : 4866
來源 : [118.169.96.16]
最後登入時間 :
2008-12-24 13:43:00
a007. 判斷質數 | From: [118.169.97.51] | 發表日期 : 2008-12-19 14:07

#include <stdio.h>


 main() {
 int i,a,x=1,j;
  while((a=scanf("%d",&i))!= EOF){
  for(j=2;j<i;j++){
    if(i%j==0)x=0;       
         }              
      x==0||i==1?printf("%d不是質數\n",i):printf("%d是質數\n",i);
     }
}

此程式為c++

 執行逾時(1s)!! 請檢查是否產生無限迴圈或尋找更好的演算法
可能原因為:
* 讀取測資視時未考慮到 EOF 導致等待過久,請參考 a001 的範例程式。
* 使用的演算法效率不夠。

 
#1084: Re:不知哪裡錯了( TLE)

Unknown User

a007. 判斷質數 | From: [220.133.52.85] | 發表日期 : 2008-12-19 22:17

輸入的整數最大到 2147483647,如果輸入這個數字,你的程式會做二十幾億個除法才發現它是質數,自然會超時。 
ZeroJudge Forum