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.螺旋矩阵