Cod sursa(job #148941)

Utilizator peanutzAndrei Homorodean peanutz Data 4 martie 2008 23:50:37
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <stdio.h>
#include <string.h>

#define NMAX 2000010

long n;
char ciur[NMAX];
long prime[1010];
int h;


int main()
{
	long i, j;
	freopen("ciur.in", "r", stdin);
	freopen("ciur.out", "w", stdout);

	scanf("%ld", &n);

	for(i = 2; i <= n; ++i)
		if(ciur[i] == 0)
			for(j = 2; i*j <= n; ++j)
				ciur[i*j] = 1;

	for(i = n; i >= 2; --i)
	{
		if(!ciur[i])
			prime[++h] = i;
		if(h == 1000) break;
	}
	printf("%d\n", h);

	while(h)
		printf("%ld ", prime[h--]);

	return 0;
}