pranay_teja
10/27/2018 - 12:37 PM

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;
}