Cod sursa(job #2184488)

Utilizator Victoras2006Nicola Victor Teodor Victoras2006 Data 24 martie 2018 09:10:31
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <fstream>
#include <bitset>
#define VM 2000000
using namespace std;
bitset <VM + 1> ciur;
ifstream fin ( "ciur.in" );
ofstream fout ( "ciur.out" );
void calc_ciur( int n ) {
  ciur[0] = ciur[1] = 1;
  for ( int i = 2; i * i <= n; i ++ )
    if ( ciur[i] == 0 )
      for ( int j = i * i; j <= n; j += i )
        ciur[j] = 1;
}
int main() {
  calc_ciur( VM );
  int n, cnt;
  fin >> n;
  cnt = 0;
  for ( int nr = n; nr >= 2; nr -- )
    if ( ciur[nr] == 0 )
      cnt ++;
  fout << cnt << "\n";
  return 0;
}