#13661: 請問TLE要怎麼解決 我是剛學還不到一個禮拜的新手XD


lawrence890815@gmail.com (智濬李)

學校 : 臺北市立永春高級中學
編號 : 77936
來源 : [180.217.142.78]
最後登入時間 :
2018-03-30 15:19:32
a121. 質數又來囉 | From: [180.217.142.78] | 發表日期 : 2018-04-04 10:22

#include<iostream>
#include<math.h>


using namespace std;
int main(){
int a,b,c,d;
int e;
int sum=0;
while(cin>>e>>a){
sum=0;
if(e==1){
e=2;
}
for(b=e;b<=a;b++){

d=0;
for(c=2;c<b;c++){
if(b%c==0){
d++;
a=a/c;
break;
}
}
if(d==0){
sum++;
}

}
cout<<sum;
}
}

 
#13665: Re:請問TLE要怎麼解決 我是剛學還不到一個禮拜的新手XD


justinO__o (夜貓)

學校 : 臺北市立成功高級中學
編號 : 51052
來源 : [111.71.212.14]
最後登入時間 :
2024-09-22 17:57:48
a121. 質數又來囉 | From: [223.140.117.191] | 發表日期 : 2018-04-04 20:22

#include
#include


using namespace std;
int main(){
int a,b,c,d;
int e;
int sum=0;
while(cin>>e>>a){
sum=0;
if(e==1){
e=2;
}
for(b=e;b<=a;b++){

d=0;
for(c=2;c<b;c++){
if(b%c==0){
d++;
a=a/c;
break;
}
}
if(d==0){
sum++;
}

}
cout<<sum;
}
}


b ~ 100000000

for i = a ~ b 總共 1000 次

所以總運算量是 1000 * 100000000

1s 大約可以跑 100000000

所以太多了

 

可以考慮 j 從 2 開始跑到 根號 i

一遇到 i % j == 0 就 ++count, break


話說好像跟上一篇一樣問題啊 0u0

 
ZeroJudge Forum