Cod sursa(job #144504)

Utilizator filipbFilip Cristian Buruiana filipb Data 27 februarie 2008 18:46:17
Problema Ciurul lui Eratosthenes Scor Ascuns
Compilator cpp Status done
Runda Marime 0.52 kb
#include <stdio.h>

int N, n, sol[1024], cnt;
char prim[2000005];

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

	scanf("%d", &N);
	for (i = 2; i <= N; ++i)
		prim[i] = 1;
	for (i = 2; i <= N; ++i)
		if (prim[i])
		{
			++n;
			for (j = i+i; j <= N; j += i)
				prim[j] = 0;
		}
	
	printf("%d\n", n);
	for (i = N; i > 1; --i)
		if (prim[i])
		{
			sol[++cnt] = i;
			if (cnt == 1000)
				break;
		}

	for (i = cnt; i; --i)
		printf("%d ", sol[i]);
	printf("\n");
	
	return 0;
}