Cod sursa(job #1692901)

Utilizator msciSergiu Marin msci Data 21 aprilie 2016 22:02:44
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cassert>
#include <bitset>

using namespace std;

const int N = 2000009;

char s[N] = {0};

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