Cod sursa(job #2796056)

Utilizator mediocrekarmaChirvasa George Matei mediocrekarma Data 7 noiembrie 2021 14:51:51
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
#include <fstream>
ifstream fin ("ciur.in");
ofstream fout ("ciur.out");
#define MAXN 2000001

void solve() {
    vector <bool> sieve (MAXN, 1);
    int n, cnt = 0;
    fin >> n;
    int sqrt_n = sqrt(n);
    for (int i = 2; i <= sqrt_n; ++i) {
        if (sieve[i]) {
            ++cnt;
            for (int j = i * i; j <= n; j += i) {
                sieve[j] = false;
            }
        }
    }
    for (int i = sqrt_n + 1; i <= n; ++i)
        cnt += sieve[i];
    fout << cnt;
}
int main() {
    fin.tie(NULL);
    std::ios_base::sync_with_stdio(false);
    solve();
}