Cod sursa(job #144885)

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