Cod sursa(job #149788)

Utilizator andyciupCiupan Andrei andyciup Data 6 martie 2008 05:43:39
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include<stdio.h>
#include<string.h>
#define N 2000009

long n;
char v[N];
long prime[1009];
int m;
long k;
int main(){
	freopen("ciur.in", "r", stdin);   
    freopen("ciur.out", "w", stdout);
	
	scanf("%ld" ,&n);
	long i,j;
	for(i=2; i<=n; ++i)
		if (v[i]==0)
			for (++k, j=2; j*i<=n; ++j)
				v[j*i]=1;
	for (i=n; i>=2; --i)
	{
		if (!v[i])
		prime[++m]=i;
		if(m==1000) break;
	}
	printf("%ld\n", k);
	while(m)
		printf("%d ", prime[m--]);
	
		
	
	
	
	return 0;
}