#9907: (C語言) 這題一直逾時怎麼辦?


kujeng (FindaDelta)

學校 : 國立中正大學
編號 : 50066
來源 : [116.241.140.14]
最後登入時間 :
2022-09-17 15:32:51
a007. 判斷質數 | From: [36.231.175.251] | 發表日期 : 2015-06-12 23:32

scanf前面那段至少跑了6秒鐘啊!!

 

#include <stdio.h>

#include <math.h>

void odd_or_not(int);

int main(){

int test,i,k,j;

int a[43641]={0};

a[0]=2;

a[1]=3;

a[2]=5;

a[3]=7;

for(i=3;i<43641;i++){

j=1;

for(k=0;k<=i;k++){

if((a[i]+j)%a[k]==0){

j++;

k=0;

continue;

}

else{

a[i+1]=a[i]+j;

}

}

}

/*printf("Done!\n");*/

/*for(i=0;i<43641;i++) printf(" %d",a[i]);*/

while(scanf("%d",&test)!=EOF){

for(i=0;i<43641;i++){

if(test%a[i]==0){ 

printf("非質數\n");

break;

}

else if(i==43640 && test%a[i]!=0){

printf("質數\n");

break;

}

}

}

}

 

 

 

 
#9918: Re:(C語言) 這題一直逾時怎麼辦?


p3a_owhj (阿普二信)

學校 : 不指定學校
編號 : 39897
來源 : [36.227.79.178]
最後登入時間 :
2024-06-04 22:09:36
a007. 判斷質數 | From: [49.159.134.149] | 發表日期 : 2015-06-14 16:42

看演算法筆記內的篩法或6n+1法加快求質數的速度

http://www.csie.ntnu.edu.tw/~u91029/Prime.html 

 
#9972: Re:(C語言) 這題一直逾時怎麼辦?


jenny0529 (jenny chou)

學校 : 國立臺灣大學
編號 : 50305
來源 : [204.52.215.71]
最後登入時間 :
2015-11-02 12:09:13
a007. 判斷質數 | From: [111.242.198.134] | 發表日期 : 2015-07-03 00:01

看演算法筆記內的篩法或6n+1法加快求質數的速度

http://www.csie.ntnu.edu.tw/~u91029/Prime.html 

 



以下是我最近解這題的程式碼,提供給大家參考,有問題可以留言給我,一起討論

 

http://joujounote.blogspot.tw/2015/07/blog-post.html#more

目前利用建質數表可以解這題

如果有人有更快的方法希望也可以分享一下XD 

 

 
ZeroJudge Forum