Cod sursa(job #2753975)

Utilizator ovidiu2007pavel ovidiu ovidiu2007 Data 24 mai 2021 20:10:58
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.56 kb
#include <iostream>

using namespace std;
int p[2000000];
int N = 0;
int NP = 0;

void elim(int a) {
    int check = a*a;
    while(check <= N) {
        p[check-1] = 1;
        check += a;
    }
}

int cntp() {
    int countp = 0;
    for(int i = 0; i < N; i++) {
        if(p[i] == 1) {
            countp++;
        }
    }
    return countp;
}

int ciur() {
    int i = 1;
    while(i < N) {
        elim(i+1);
        i++;
    }
    return cntp();
}

int main()
{
    cin >> N;
    p[0] = 1;
    cout << N - ciur();
    return 0;
}