Cod sursa(job #3304473)

Utilizator vlvdVlad Hosu vlvd Data 23 iulie 2025 23:21:31
Problema Ciurul lui Eratosthenes Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.49 kb
#include <fstream>
#include <iostream>
#include <vector>

using namespace std;

int main() {
  ifstream fin("ciur.in");
  ofstream fout("ciur.out");

  int n, cnt = 0;
  fin >> n;

  if (n < 2) {
    fout << 0 << '\n';
    return 0;
  }

  vector<int> ciur(n + 1, 1);
  ciur[0] = ciur[1] = 0;

  for (int i = 2; i * i <= n; ++i) {
    if (ciur[i]) {
      for (int j = i * i; j <= n; j += i)
        ciur[j] = 0;
    }
  }

  for (int i = 2; i <= n; ++i)
    cnt += ciur[i];

  fout << cnt << '\n';
}