#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 的範例程式。
* 使用的演算法效率不夠。
是因為效率不夠嗎?