Cod sursa(job #2488846)

Utilizator bogdanvladmihaiBogdan Vlad-Mihai bogdanvladmihai Data 7 noiembrie 2019 18:11:59
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.5 kb
#include <bits/stdc++.h>

const int MAX_N = 2000005;

int n;

std::vector <bool> sieve(MAX_N);

int main() {
  int ans = 0;
  freopen("ciur.in", "r", stdin);
  freopen("ciur.out", "w", stdout);
  scanf("%d", &n);
  sieve[0] = sieve[1] = 1;
  for (int i = 2; i * i <= n; ++i) {
    if (sieve[i] == 0) {
      for (int j = i * i; j <= n; j += i) {
        sieve[j] = 1;
      }
    }
  }
  for (int i = 1; i <= n; ++i) {
    ans += (sieve[i] == 0);
  }
  printf("%d\n", ans);
  return 0;
}