素数筛
//找出从0到n的所有素数 #include<iostream> #include<set>//9592 #include<vector> #include<string> #include<stdlib.h> #include<stdio.h> #include<math.h> #include<algorithm> typedef long long ll; using namespace std; int main() { int n; cin>>n; int prime[n+2]={0}; prime[0]=prime[1]=1; int temp=sqrt(n); cout<<temp; for(int i=2;i<=temp;++i){ if(!prime[i]){ for(int j=i*i;j<=n;j+=i){//从2i到3i到i*i-1 之前都已经剔除过了,所以直接从i*i开始 prime[j]=1;//剔除 } } } for(int i=0;i<=n;++i){ if(!prime[i]) cout<<i<<" "; } return 0; }