Cod sursa(job #2710685)

Utilizator Rares891_Rares Rares Rares891_ Data 22 februarie 2021 21:03:57
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
#include <cmath>
#define NMAX 2000005

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

int n;
bool c[NMAX];

void ciur(int n) {
    c[0] = 0;
    c[1] = 1;
    for(int i = 2; i <= std::sqrt(n); i++) {
        if(c[i] == 0) {
            int j = 2;
            while(i * j <= n) {
                c[i * j] = 1;
                j++;
            }
        }
    }
}

int main() {
    fin >> n;
    fin.close();
    ciur(n);
    int cnt = 0;
    for(int i = 1; i <= n; i++) {
        if(c[i] == 0) {
            cnt++;
        }
    }
    fout << cnt;
    fout.close();
    return 0;
}