#26151: 為捨麼顯示TLE


qaz7355110@gmail.com (Jerry Lai)

學校 : 新北市私立時雨高級中學
編號 : 157942
來源 : [59.124.244.14]
最後登入時間 :
2023-06-28 11:18:04
a007. 判斷質數 | From: [118.150.44.160] | 發表日期 : 2021-07-19 15:00

#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
來源 : [220.141.64.79]
最後登入時間 :
2024-07-29 22:03:08
a007. 判斷質數 | From: [111.241.224.10] | 發表日期 : 2021-07-19 17:46

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

建議使用建表法

 
ZeroJudge Forum