Cod sursa(job #3000407)

Utilizator not_anduAndu Scheusan not_andu Data 12 martie 2023 13:47:18
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#include <cstring>

using namespace std;

#define INFILE "ciur.in"
#define OUTFILE "ciur.out"
#define NRMAX 2000001

ifstream fin (INFILE);
ofstream fout (OUTFILE);

bool ciur[NRMAX];
int n;

void init(int numar){

    int cnt = numar - 1;

    for(int i = 2; i <= numar; ++i){
        ciur[i] = true;
    }

    ciur[0] = false, ciur[1] = false;

    for(int i = 2; i <= numar; ++i){
        for(int j = 2; i * j <= numar; ++j){
            if(ciur[i * j] == true){
                --cnt;
                // fout << i * j << " ";
            }
            ciur[i * j] = false;
        }
    }

    fout << '\n';

    fout << cnt << '\n';
}

void solve(){

    fin >> n;

    init(n);

}

int main(){
    solve();
    return 0;
}