Cod sursa(job #3316495)

Utilizator forfunForfun forfun Data 18 octombrie 2025 22:37:00
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.58 kb
#include <bits/stdc++.h>
using namespace std;

// !!!
string PREFIX = "ciur";


int main()
{
  ifstream cin(PREFIX + ".in");
  ofstream cout(PREFIX + ".out");

  int n;
  cin >> n;
  vector<bool>is_prime(n + 1, 1);
  vector<int>primes;
  int cnt = 0;

  auto mark = [&] (int x) {
    for (int p : primes) {
      for (int j = 1; j * p * x <= n; j++)
         is_prime[j * p * x] = 0;
    }
  };

  primes.push_back(2);
  mark(2);

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

  cout << cnt << '\n';


}