Cod sursa(job #2660029)

Utilizator cristi_macoveiMacovei Cristian cristi_macovei Data 18 octombrie 2020 00:20:33
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream>
#include <fstream>
#include <bitset>

const int NMAX = 2e6;

int n;
std::bitset<NMAX> sieve;

void read() {
  std::ifstream in("ciur.in");

  in >> n;

  in.close();
}

int main() {
  read();

  int cnt = 1; // first number is 2

  for (int i = 3; i * i <= n; i += 2) {
    if (!sieve[i]) {
      for (int j = i * i; j <= n; j += 2 * i)
        sieve[j] = true;
    }
  }

  for (int i = 3; i <= n; i += 2) {
    if (!sieve[i])
      ++ cnt;
  }

  std::ofstream out("ciur.out");
  out << cnt << '\n';
  
  out.close();
  return 0;
}