#4908: 一直出現 TLE (1s)...


loaabky2795 (null)

學校 : 不指定學校
編號 : 17675
來源 : [220.129.195.199]
最後登入時間 :
2021-09-24 17:55:44
a007. 判斷質數 | From: [203.77.73.101] | 發表日期 : 2011-02-24 21:19

 #include<stdio.h>
int main(void)
{      
    int x,i,temp=0;
    
    while(scanf("%d",&x)!=EOF)
    {   
        if(x<=3)
            {
                printf("質數\n");
            }
        else if(x%2==0)
            {
                printf("非質數\n");
            }
        
        else
        {
            for(i=1;i<=x/2;i++)
            {
                if(x%i==0 || i==x)
                {
                    temp++;
                }
            }
            
            if(temp==1)
            {
                printf("質數\n");
            }
            else
            {
                printf("非質數\n");
            }
            temp=0;
        }
    }
    return 0;
}

 

顯示結果如下

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

 

是因為效率不夠嗎?

 
#4909: Re:一直出現 TLE (1s)...


loaabky2795 (null)

學校 : 不指定學校
編號 : 17675
來源 : [220.129.195.199]
最後登入時間 :
2021-09-24 17:55:44
a007. 判斷質數 | From: [210.60.11.237] | 發表日期 : 2011-02-25 13:53

已解決
 
ZeroJudge Forum