Cod sursa(job #2971998)

Utilizator gripzStroescu Matei Alexandru gripz Data 28 ianuarie 2023 15:10:05
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int N,
bool ciur[2000001];


int main()
{
    fin >> N;

    ciur[1] = 1;
    // build la ciur
    for(int i = 2; i * i <= N; i++) {
        if(ciur[i] == 0) {
            int c = i, new_c = i;
            while(new_c <= N) {
                new_c += c;
                ciur[new_c] = 1;
            }
        }
    }

    int cnt = 0;
    for(int i = 1; i <= N; i++) {
        if(ciur[i] == 0) {
            cnt++;
        }
    }
    fout << cnt;

    return 0;
}