1. 程式人生 > >篩選法求質數(acm)

篩選法求質數(acm)

#include <stdio.h>
bool a[2000005];
int main(){
	int n;
	for(int i=2;i<=2000005;i++){
		a[i]=1;
	}
	for(int i=2;i<=2000000;i++){
		if(a[i]){
			    for(int j=i+i;j<=2000005;j+=i){
				    a[j]=0;
			}
		}
	}
	while(~scanf("%d",&n)){
		if(n==0)  break;
		for(int i=2;i<=n;i++){
			if(a[i]==1){
				printf("%d ",i);
			}
		}
	}
	return 0;
}