这是一个朴实无华的埃筛
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
const int n=10000010;
bool a[10000010];
void assf()
{
int k=sqrt(n);
a[0]=a[1]=1;
for(int i=2;i<=k;i++)
{for(int j=2;j<=n/i;j++)
if(a[i*j]==0) a[i*j]=1;
}
}
int main()
{
//freopen("sushu.out","w",stdout);
int s,ans=0;
cin>>s;
assf();
for(int i=0;i<=s;i++)
if (a[i]==0)
{
cout<<i<<" ";
ans++;
}
cout<<ans;
}
但是用文件输入输出后结果用.txt或写字板打开会成乱码,用别的就不会,在学校用cena会报错,不知在csp会不会有影响