Cod sursa(job #2965880)

Utilizator rutakateIvanovici Vlad rutakate Data 16 ianuarie 2023 14:58:59
Problema Ciurul lui Eratosthenes Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("ciur.in");
ofstream fout("ciur.out");
int n, sir[2000004];

void fct(int nr) {
    if(sir[nr] == -1) {
        fct(nr + 1);
    }
    for(int i = nr + 1; i <= n; ++i) {
        if(sir[i] % nr == 0) {
            sir[i] = -1;
        }
    }
    if(nr > n) {
        return;
    }
    fct(nr + 1);
}

int main()
{
    fin >> n;
    int suma = 0;
    for(int i = 1; i <= n; ++i) {
        sir[i] = i;
    }
    fct(2);
    for(int i = 2; i <= n; ++i) {
        if(sir[i] != - 1) {
            suma += 1;
        }
    }
    fout << suma;
    return 0;
}