埃筛
//求所有<=n的质数a 埃筛 
//证明:设 n=a*b;(a<=b) 
//则 a<=sqrt(n) 
#include<cstdio> 
#include<cmath>
#include<cstring>
using namespace std;
bool prime[100001];
int n;
int main(){
	while(scanf("%d",&n)==1){
		memset(prime,1,sizeof(prime));
		int x=sqrt(n);
		for(int i=2;i<=x;i++){
			for(int j=i*i;j<=n;j+=i){  //通过这里i*i<=n推出上一行的i的范围 
				prime[j]=0;
			}
		}
		for(int i=2;i<=n;i++){
			if(prime[i]) printf("%d ",i);
		}
		printf("\n");
	}
	return 0;
} 
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号