Cod sursa(job #2764467)

Utilizator cristi_macoveiMacovei Cristian cristi_macovei Data 20 iulie 2021 22:57:07
Problema Ciurul lui Eratosthenes Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.5 kb
#include <iostream>
#include <fstream>
#include <vector>

const int NMAX = 2e6;

int lp[1 + NMAX];

std::vector<int> primes;

int main() {
  std::ifstream in("ciur.in");
  std::ofstream out("ciur.out");

  int n;
  in >> n;

  for (int i = 3; i <= n; i += 2) {
    if (lp[i] == 0) {
      primes.push_back(i);
      lp[i] = i;
    }

    for (int j = 0; j < primes.size() && primes[j] <= lp[i] && i <= n / primes[j]; ++j)
      lp[i * primes[j]] = primes[j];
  }

  out << primes.size() + 1 << '\n';

  return 0;
}