#26151: 為捨麼顯示TLE


qaz7355110@gmail.com (Jerry Lai)

學校 : 新北市私立時雨高級中學
編號 : 157942
來源 : [120.107.168.173]
最後登入時間 :
2025-04-30 14:32:13

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

 

不知為何

#26153: Re:為捨麼顯示TLE


yp10871039 ( )

學校 : 臺北市私立延平高級中學
編號 : 104506
來源 : [111.241.140.108]
最後登入時間 :
2025-06-24 14:31:42

#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多次,很沒效率

建議使用建表法