Cod sursa(job #634183)

Utilizator ContraPunctContrapunct ContraPunct Data 15 noiembrie 2011 19:47:15
Problema Ciurul lui Eratosthenes Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<fstream>
const int Nmax = 2000005;
using namespace std;

char ciur[Nmax];
int n;

ifstream fin("ciur.in");
ofstream fout("ciur.out");

int Ciur ()
{
	int nr=1;
	int i = 0 ,j = 0;
	i=2;
	for( j = 4; j<=n; j+=2)
		ciur[j] ='1';
	for(i=3; i<=n; i+=2)
		if(ciur[i] == 0 ) 
		{
			for( j = i+i ; j<=n; j += i)
				if(ciur[j] == 0)
					ciur[j]='1';
			nr ++;
		}
	return nr;
}

int main()
{
	int x,i;
	fin>>n;
	if( n == 0 || n == 1)  
		x = 0;
	else
		if( n==2 )
			x=1;
		else
			x = Ciur();
	fout<<x<<"\n";
	fout.close();
	fin.close();
	return 0;
}