筛选法找素数
#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; }