Cod sursa(job #2972001)

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

using namespace std;

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

int N;
bool ciur[2000003];


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 + c;
            while(new_c <= N) {
                ciur[new_c] = 1;
                new_c += c;
            }
        }
    }

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

    return 0;
}