打的vector
,开 O2 就 MLE 46,不开就 TLE 46。
#include<bits/stdc++.h>
using namespace std;
vector<bool> prime;
int l,r,cnt;
void Prime(int n){
for(int i=0;i<=r;i++)
prime.push_back(1);
prime[0]=prime[1]=0;
for(int i=2;i<=n;i++)
if(prime[i])
for(int j=i*i;j<=r;j+=i)
prime[j]=0;
}
int main(){
scanf("%d%d",&l,&r);
Prime(int(sqrt(r))+1);
for(int i=l;i<=r;i++)
cnt+=prime[i];
printf("%d",cnt);
}