Cod sursa(job #147086)

Utilizator the1dragonIonita Alexandru the1dragon Data 2 martie 2008 16:22:17
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<stdio.h>

char notprime[2000001];

int main()
{
	freopen("ciur.in", "r", stdin);
	freopen("ciur.out", "w", stdout);
	int n, i, j, sol=0, start=1, k=0;
	
	scanf("%d", &n);
	
	notprime[1]=1;
	for (i=1; i<=n; i++)
	{
		if (!notprime[i])
		{
			++sol;
			for (j=i+i; j<=n; j+=i)
				notprime[j]=1;
		}
	}
	printf("%d\n", sol);
	if (sol>1000)
		start=sol-1000+1;
	for (i=1; i<=n; i++)
	{
		if(!notprime[i])
		{
			++k;
			if (k>=start)
				printf("%d ", i);
		}
	}
	fclose(stdout);
	return 0;
}