Cod sursa(job #2524607)

Utilizator RaresCosaAndrei-Rares Cosa RaresCosa Data 15 ianuarie 2020 21:58:52
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
using namespace std;

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

long long ap[2000000];

int ciur (int x) {
    int nrp = 0, creste = 1;
    for (int i = 2; i <= x; i = i + creste) {
        if (ap[i] != 1) {
            ++nrp;
            ap[i] = 1;
            for (int j = i * i; j <= x; j = j + i)
                ap[j] = 1;
        }
        if (i == 3)
            creste = 2;
    }
    return nrp;
}

int main() {
    int n;
    fin >> n;
    int nr_prime = ciur(n);
    fout << nr_prime;
}