Cod sursa(job #145490)

Utilizator andrei.12Andrei Parvu andrei.12 Data 28 februarie 2008 21:02:53
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<stdio.h>

int i, j, nr, sol[1005], n;
char a[2000005];
inline int min(int a, int b){
	if (a < b)
		return a;
	return b;
}
int main()
{
	freopen("ciur.in", "rt", stdin);
	freopen("ciur.out", "wt", stdout);
	
	scanf("%d", &n);
	
	for (i = 2; i*i <= n; i ++)
		for (j = 2*i; j <= n; j += i)
			a[j] = 1;
	
	for (i = n; i > 1; i --)
		if (!a[i])
			sol[++nr] = i;
	
	printf("%d\n", nr);
	nr = min(1000, nr);
	for (i = nr; i; i --)
		printf("%d ", sol[i]);
	
	return 0;
}