#include<stdio.h>
#include<iostream>
#include<cmath>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
int n;
cin>>n;
bool isprime[n+1];
int num=0;
for(int i=0;i<=n;i++){
isprime[i]=true;
}
isprime[0]=isprime[1]=false;
for(int i=2;i<=n;i++){
if(isprime[i]){
num++;
for(int j=2*i;j<=n;j+=i){
isprime[j]=false;
}
}
}
cout<<num<<endl;
for(int i=0;i<=n;i++){
if(isprime[i]) cout<<i<<" ";
}
return 0;
}
/*
Points:
先全置真,后筛假存真
*/
素数筛
最新推荐文章于 2023-01-22 11:26:42 发布