Cod sursa(job #216268)

Utilizator stocarulCosmin-Mihai Tutunaru stocarul Data 23 octombrie 2008 18:49:34
Problema Ciurul lui Eratosthenes Scor 40
Compilator c Status done
Runda Arhiva educationala Marime 0.56 kb
#include<stdio.h>
#define xmax 2*1000*1000+1
char prim[xmax];
int x;

int eratosthenes(char prim[], int x)
	{
	int i,j,k=0;
	for(i=2;i<x;prim[i++]=0); //golim vectorul
	for(i=2;i<x;i++)
		if(!prim[i]) //daca numarul este prim
			{
			k++; //memoram ca avem un nou numar prim;
			for(j=i;j<x;prim[j+=i]=1); //toate aceste numere nu mai sunt prime
			}
	return k;
	}

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

scanf("%d",&x);
printf("%d",eratosthenes(prim,x));

fclose(stdin);
fclose(stdout);

return 0;
}