今天看到埃式筛选法,我的总是超时,为什么啊?求大牛来看看。
怎么可以再优化一点?
#include<stdio.h>
typedef long long ll;
ll num[10000000]= {0};
ll num1[100000]= {0};
int main() {
ll T;
ll a,b;
scanf("%lld",&T);
while(T--) {
scanf("%lld%lld",&a,&b);
for(int i=2; i<=(b/2); i++)
if(num[i]!=1)
for(int j=2; i*j<=b; j++)
num[i*j]=1;
for(int i=a; i<b; i++)
if(num[i]==0)
num1[T]++;
printf("%lld\n",num1[T]-1);
}
return 0;
}