Cod sursa(job #144818)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 27 februarie 2008 23:35:07
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <stdio.h>

int n, sol[1005], cnt;
char ciur[2000002];

void erat()
{
	int i, j;
	for (i = 4; i <= n; i += 2) ciur[i] = 1;
	for (i = 3; i <= n; i += 2)
	{
		if (!ciur[i]) for (j = 2; i * j <= n; j++) ciur[i * j] = 1;
	}
}

int main()
{
	freopen("ciur.in","r",stdin);
	freopen("ciur.out","w",stdout);
	scanf("%d",&n);
	erat();
	int i;
	for (i = 2; i <= n; i++) 
	{
		if (!ciur[i]) sol[++cnt] = i;
		if (cnt == 1000) break;
	}
	printf("%d\n",cnt);
	for (i = 1; i <= cnt; i++) printf("%d ",sol[i]);
	return 0;
}