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


loaabky2795 (null)


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


已解決