文章

166

粉丝

68

获赞

787

访问

45.6k

头像
质数的个数 题解:素数筛
P1833 山东大学机试
发布于2025年3月15日 11:00
阅读数 66

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

const int N = 1e7+5;

int main() {
    int a[N]={0};
    for(int i=2;i*i<=N;i++){
        int k=2;
        while(i*k<=N){
            a[i*k]=1;
            k++;
        }
    }
    vector<int>primes;
    for(int i=2;i<N;i++){
        if(a[i]==0)primes.push_back(i);
    }
    int n;
    while(cin>>n){
        int ans=0;
        for(int i=0;i<primes.size();i++){
            if(primes[i]<=n)ans++;
        }
        cout<<ans<<endl;
    }
}

如果没有准备就直接开算的话,时间复杂度绝对过不去

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发