题解 | 质数统计

质数统计

https://www.nowcoder.com/practice/d832b0c1a0bd4394a3229f06c6f0b50b

#include <iostream>
using namespace std;
const int N=1e6;
bool st [N];
int primes[N];
int count[N];
void solve ( ){
    int ans=0;
    for(int i=2;i<=N;i++){
          if(!st[i])   primes[ans++]=i;     
            for(int j=0;primes[j]<=N/i;j++){
                st[primes[j]*i]=true;
                if(i%primes[j]==0) break;
            }
     count[i]=ans;
    // cout<<i<<" "<<ans<<endl;
    }
    
}




int main() {
   
int n;
cin>>n;
solve();
while(n--){
    int l,r;
    cin>>l>>r;
    cout<<count[r]-count[l-1]<<endl;
}

}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务