Cod sursa(job #152311)

Utilizator razvan2006razvan brezulianu razvan2006 Data 9 martie 2008 12:45:39
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
 #include<stdio.h>

long i, j, n, a[2000001], b[1001], nr, nc;
FILE *fin, *fout;

int main()
{
	fin = fopen("ciur.in", "rt");
	fout = fopen("ciur.out", "wt");

	fscanf(fin, "%ld", &n);

	for(i = 2; i <= n; i++)
		if(a[i] == 0)
		{
			a[i] = 2;

			for(j = 2; j <= n / i; j++)
				a[j * i] = 1;
		}
	
	for(i = n; i >= 2; i--)
		if(a[i] == 2)
		{
			nr++;
			if(nr <= 1000)
			{
				nc++;
				b[nc] = i;
			}
		}

	fprintf(fout, "%ld\n", nr);

	for(i = nc; i >= 1; i--)
		fprintf(fout, "%ld ", b[i]);

	return 0;
}