Cod sursa(job #144880)

Utilizator ciprianfFarcasanu Alexandru Ciprian ciprianf Data 28 februarie 2008 08:02:12
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.43 kb
#include <stdio.h>
int main(){
	char v[2000001]={0};
	int n,i,w[2000],k=1,x,y,j;
	freopen("ciur.in","r",stdin);
	freopen("ciur.out","w",stdout);
	scanf("%d",&n);
	for(i=4;i<=n;i+=2)
		v[i]=1;
	w[k]=2;
	for(i=3;i<=n;i+=2)
		if(!v[i]){
			w[++k]=i;
			for(j=i+i;j<=n;j+=i)
				v[j]=1;
		}
	printf("%d\n",k);
	if(k>1000) { 
		for(i=k-999;i<=k;i++)
			printf("%d ",w[i]);
	}
	else for(i=1;i<=k;i++)
		printf("%d ",w[i]);
}