Cod sursa(job #144500)

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

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

int is_prim(int X)
{
	int i;
	
	for (i = 2; i * i <= X; ++i)
		if (X % i == 0)
			return 0;
	return 1;
}

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

	scanf("%d", &N);
	for (i = 2; i <= N; ++i)
		if (is_prim(i))
			++n,
			prim[i] = 1;
	
	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;
}