#include<bits/stdc++.h> using namespace std; const int maxn=1000010; bool a[maxn]; int primesum[maxn]; void printPrimes(){ memset(a,true,sizeof(a)); a[0]=a[1]=false; for(int i=2;i<=maxn;i++){ if(!a[i]) continue; int j=2; while(i*j<=maxn){ a[i*j]=false; j++; } } } void Primes(){ primesum[0]=0; int ans=0; for(int i=1;i<=maxn;i++){ if(a[i]) ans++; primesum[i]=ans; } } int main(){ printPrimes(); Primes(); int n,m; cin>>n>>m; int l,r; while(n--){ cin>>l>>r; if(r>m || l<=0) {cout<<"Crossing the line\n";continue;} cout<<primesum[r]-primesum[l-1]<<"\n"; } return 0; }
【P1865】筛法求素数+区间!
猜你喜欢
转载自www.cnblogs.com/rign/p/10003776.html
今日推荐
周排行