Cod sursa(job #836958)

Utilizator lucky1992Ion Ion lucky1992 Data 16 decembrie 2012 22:33:38
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <fstream>
#include <cstring>

#define NMAX 2000010
using namespace std;

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


int main(){

	int N;	in>> N;
	in.close();
	bool* sieve = new bool[NMAX+1];
	memset( sieve+2, 1 , sizeof(bool)*(N+1) );
	long long  count = 0;
	for( int i = 2; i  <= N; i++ )
		if( sieve[i] == 1 )
			for( int j = i * i; j <= N; j+=i)
				sieve[j] = 0;
		
	
	
	for( int i = 2; i <= N; i++ )
		if( sieve[i] == 1 )
			count++;
			
	out<< count;
	out.close();
	
	return 0;
}