Cod sursa(job #1657572)

Utilizator msciSergiu Marin msci Data 20 martie 2016 16:51:35
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <cstdio>

const int NMAX = 2000009;

bool sieve[NMAX];
int N, ans;

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