Cod sursa(job #1408429)

Utilizator OrolesVultur Oroles Data 30 martie 2015 00:46:36
Problema Ciurul lui Eratosthenes Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <iostream>
#include <vector>
#include <fstream>
#include <math.h>

char ciur[2000000];

int main( int argc, char* argv[] )
{
	std::ifstream input( "ciur.in" );
	std::ofstream output( "ciur.out" );
	
	int N;
	input >> N;

	int rad = sqrt(N);
	for ( int i = 2; i <= rad; ++i )
	{
		int j = i * i;
		while ( j < N )
		{
			ciur[j] = 1;
			j += i;
		}
	}
	int counter = 0;
	for ( int i = 2; i < N; ++i )
	{
		if ( ciur[i] == 0 )
		{
			counter += 1;
		}
	}

	output << counter;
	input.close();
	output.close();
	return 0;
}