Cod sursa(job #144887)

Utilizator ciprianfFarcasanu Alexandru Ciprian ciprianf Data 28 februarie 2008 08:11:01
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.43 kb
#include <stdio.h>
char v[2000005];
int w[1009];
int main(){
	int n,i,k=0,j,nr=1;
	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]){
			nr++;
			for(j=i+i;j<=n;j+=i)
				v[j]=1;
		}
	for(i=n;i>=2;i--)
		if(!v[i]){
			w[++k]=i;
			if(k==1000) break;
		}
	printf("%d\n",nr);
	for(i=k;i>=1;i--)
		printf("%d ",w[i]);
}