题解 | 质数统计

质数统计

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

#include <algorithm>
#include <bits/stdc++.h>
#include <vector>
using namespace std ;

const int N=1e6+5;
vector<int> prime(N);
vector<bool> vis(N);
int idx=0;
void Euler(){
    for(int i = 2; i <= N; i++) {
        if(!vis[i]) prime[++idx] = i;
        for(int j = 1; prime[j]*i <= N; j++){
            vis[prime[j]*i] = true;
            if(i % prime[j] == 0) break;
        }
    }

}

int  main(){
    Euler();
    int n;cin>>n;
    for(int i = 1; i <= n; i++){
        int l,r;cin>>l>>r;
        int Lpos = lower_bound(prime.begin(), prime.begin()+idx, l) - prime.begin();
        int Rpos = upper_bound(prime.begin(), prime.begin()+idx, r) - prime.begin();
        cout<< Rpos - Lpos  <<endl;
    }
    return 0;
}

全部评论

相关推荐

程序员花海_:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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