Cod sursa(job #1366076)

Utilizator BLz0rDospra Cristian BLz0r Data 28 februarie 2015 18:56:31
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <cstdio>
#include <bitset>
#include <vector>
using namespace std;

#define Nmax 2000002

FILE *f = fopen ( "ciur.in", "r" );
FILE *g = fopen ( "ciur.out", "w" );

bitset < Nmax > ap;
vector < int > prime;

void Ciur ( int N ){
	if ( N < 2 ) return;
	
	prime.push_back ( 2 );
	
	for ( int i = 3; i <= N; i += 2 )
		if ( !ap[i] ){
			prime.push_back ( i );
			for ( int j = i + i; j <= N; j += i )
				ap[j] = 1;
		}
	
}

int main(){
	int N;
	
	fscanf ( f, "%d", &N );
	
	Ciur ( N );
	
	fprintf ( g, "%d", prime.size() );
	
	return 0;
}