Cod sursa(job #2172085)

Utilizator DanielRusuDaniel Rusu DanielRusu Data 15 martie 2018 14:58:47
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <iostream>
#include <cstdio>

using namespace std;

int ans, N;
char CE[2000005];

void Ciur() {
    CE[0] = CE[1] = 1;

    ans--;
    for(long long i = 2; i <= N; ++i) {
        if(CE[i] == 0) {

            for(long long j = i * i; j <= N; j += i) {
                if(CE[j] == 0) {
                    ans--;
                }
                CE[j] = 1;
            }
        }
    }
}

int main() {
    freopen("ciur.in","r",stdin);
    freopen("ciur.out","w",stdout);

    scanf("%d", &N);

    ans = N;
    Ciur();

    cout << ans << '\n';

    return 0;
}