c_cpp Prime_Numbers-Sieve_of_Eratosthenes

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp Prime_Numbers-Sieve_of_Eratosthenes相关的知识,希望对你有一定的参考价值。

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

// #Math
// https://www.geeksforgeeks.org/sieve-of-eratosthenes/

vector<int> prime(int n);

int main(){
    int t;
    cin>>t;
    while(t--){
        int n;
        cin>>n;
        vector<int> pri=prime(n);
        for(int i=0;i<pri.size();i++){
            cout<<pri[i]<<" ";
        }
        cout<<endl;
    }
    return 0;
}
vector<int> prime(int n){
    vector<bool> hasFactors(n+1,false);
    vector<int> ans;
    for(int i=2;i<sqrt(n);i++){
        if(hasFactors[i]==false){
            int j=2;
            while(i*j<=n){
                hasFactors[i*j]=true; // has i & j as factors
                j++;
            }
        }
    }
    for(int i=1;i<=n;i++){
        if(hasFactors[i]==false){
            ans.push_back(i);
        }
    }
    return ans;
}

以上是关于c_cpp Prime_Numbers-Sieve_of_Eratosthenes的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 127.单词阶梯

c_cpp MOFSET

c_cpp MOFSET

c_cpp 31.下一个排列

c_cpp string→char *

c_cpp 54.螺旋矩阵