#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
int a,b,i;
while(scanf("%d",&a)!=EOF)
{
b=sqrt(a);
while(b!=1)
{
if((a%b)==0)
{
printf("非質數\n");
break;
}
else
{
b--;
}
}
if(b==1)
{
printf("質數\n");
}
}
return 0;
}
不知為何
#include
#include
#include
int main(void)
{
int a,b,i;
while(scanf("%d",&a)!=EOF)
{
b=sqrt(a);
while(b!=1)
{
if((a%b)==0)
{
printf("非質數\n");
break;
}
else
{
b--;
}
}
if(b==1)
{
printf("質數\n");
}
}
return 0;
}
不知為何
測試資料至多有200000筆,且2 ≦ x ≦ 2147483647
若每筆x都是2147483647 , sqrt(x) 的迴圈每次要跑40000多次,很沒效率
建議使用建表法