Cod sursa(job #2780937)

Utilizator andrei_C1Andrei Chertes andrei_C1 Data 8 octombrie 2021 10:04:55
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.49 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
const int DIM = 2e6;
int N;
bitset<DIM + 4>p;
int main() {
    fin >> N;
    p[0] = p[1] = 1;
    for(int i = 4; i <= N; i += 2) {
        p[i] = 1;
    }
    for(int i = 3; i * i <= N; i += 2) {
        if(!p[i]) {
            for(int j = i * i; j <= N; j += (i << 1)) {
                p[j] = 1;
            }
        }
    }
    fout << N + 1 - p.count() << '\n';
    return 0;
}