Cod sursa(job #2794698)

Utilizator guzgandemunteIonescu Laura guzgandemunte Data 5 noiembrie 2021 12:09:16
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <iostream>
#include <fstream>
#define NMAX 2000000

using namespace std;

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

int n;
bool ciur[NMAX + 1];

int nrPrime(int n)
{
    for (int i = 4; i <= n; i += 2) ciur[i] = 1;

    for (int d = 3; d * d <= n; d += 2)
        if (ciur[d] == 0)
            for (int i = d * d; i <= n; i += d)
                ciur[i] = 1;

    int cnt = 0;

    for (int i = 2; i <= n; ++i)
        if (ciur[i] == 0) cnt++;

    return cnt;
}
int main()
{
    fin >> n;
    fout << nrPrime(n);

    fin.close();
    fout.close();
    return 0;
}