Cod sursa(job #705632)

Utilizator BitOneSAlexandru BitOne Data 4 martie 2012 18:06:31
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <fstream>
#include <cstdlib>
#define N_MAX 2000011

using namespace std;

bool isPrime[N_MAX];

int main()
{
	int N, i, j, count=1;
	ifstream in( "ciur.in" );
	ofstream out( "ciur.out" );

	in>>N;	
	for( j=4; j <= N; j<<=1 )
		isPrime[j]=true;
	for( i=3; i*i <= N; i+=2 )
		if( false == isPrime[i] )
		{
			for( j=i*i; j <= N; j+=i )
				isPrime[j]=true;
		}
	for( i=3; i <= N; i+=2 )
		count+= !isPrime[i];

	out<<count<<'\n';
	return EXIT_SUCCESS;
}