#13654: 為什麼會 TLE 呢


pcymichael (alexi)

學校 : 高雄市立海青高級工商職業學校
編號 : 67763
來源 : [36.238.150.11]
最後登入時間 :
2019-07-09 15:53:50
a121. 質數又來囉 | From: [218.173.96.191] | 發表日期 : 2018-04-03 20:34

#include<iostream>
using namespace std;
int main()
{
int a,b;
int sum,count;
while(cin>>a>>b)
{
count=0;

for(int i=a;i<=b;i++)
{
sum=0;
for(int j=1;j<=b;j++)
{
if(i%j==0)
sum++;
}
if(sum==2)
count++;
}
cout<<count<<endl;
}
}

 
#13656: Re:為什麼會 TLE 呢


justinO__o (夜貓)

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

#include
using namespace std;
int main()
{
int a,b;
int sum,count;
while(cin>>a>>b)
{
count=0;

for(int i=a;i<=b;i++)
{
sum=0;
for(int j=1;j<=b;j++)
{
if(i%j==0)
sum++;
}
if(sum==2)
count++;
}
cout<<count<<endl;
}
}


b ~ 100000000

for i = a ~ b 總共 1000 次

所以總運算量是 1000 * 100000000

1s 大約可以跑 100000000

所以太多了

 

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

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

 
ZeroJudge Forum