#13654: 為什麼會 TLE 呢


pcymichael (alexi)


#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 (夜貓)


#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