筛选法找素数

#include<bits/stdc++.h>
using namespace std;
int a[2000]={0,0,1},n;//a[i]==1表示i是素数,否则为0是合数,初始设置2是素数,其它为合数
void isss(int x){//是否素数
    for(int i=3;i<=n;i++)if(i%2!=0)a[i]=1;//从3开始到n过,所有不是2的倍数的数都设为素数,因为有可能,偶数都是合数,不用考虑
    for(int i=3;i<=n;i++){//从3开始到n过,找到一个质数,设置所有它的倍数(2倍以上)为合数
        if(i)for(int j=i*2;j<n;j+=i)a[j]=0;
    }
}
int main(){
    cin>>n;
    isss(n);
    for(int i=2;i<=n;i++)if(a[i])printf("%d ",i);
    return 0;
}