Cod sursa(job #2754011)

Utilizator ovidiu2007pavel ovidiu ovidiu2007 Data 24 mai 2021 20:54:39
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#include <bitset>

using namespace std;
bitset<2000000> p;
int N = 0;

ifstream in("ciur.in");
ofstream out("ciur.out");

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() {
    for(int i = 2; i*i <= N; i++) {
        if(!p[i]) {
            for(int j = i*i; j <= N; j += i) {
                p[j] = 1;
            }
        }
    }
    return cntp();
}

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