Cod sursa(job #216492)

Utilizator ooctavTuchila Octavian ooctav Data 24 octombrie 2008 18:41:36
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <stdio.h>
const int N=2000005;
bool c[N];

void ciur(int n)
{
	int i,j;
	for(i=2;i*i<=n;++i)
		if(c[i]==false)//daca i este prim,marchez ca nefiind primi multiplii lui
			for(j=i*i;j<=n;j+=i)
				c[j]=true;
}

int numar(int n)
{
	int i,nr=0;
	for(i=2;i<=n;++i)
		if(!c[i])//<=> c[i]==false
			++nr;
	return nr;
}

int main()
{
	int x;
	FILE *f1,*f2;
	f1=fopen("ciur.in","r");
	f2=fopen("ciur.out","w");
	fscanf(f1,"%d",&x);
	ciur(x);
	fprintf(f2,"%d",numar(x));
	fclose(f1);
	fclose(f2);
	return 0;
}