Cod sursa(job #2811269)

Utilizator Teodor11Posea Teodor Teodor11 Data 1 decembrie 2021 18:45:55
Problema Ciurul lui Eratosthenes Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
using namespace std;

int primality_of_numbers[1995000];

void find_primality_of_first_n_numbers(int n) {
    for (int i = 2; i * i <= n; i++) {
        if (primality_of_numbers[i] == 0) {
            for (int j = 2; j * i <= n; j++) {
                ++primality_of_numbers[j * i];
            }
        }
    }
}

int number_of_prime_numbers(int n) {
    int counter = 0;
    for (int i = 2; i <= n; i++) {
        if (primality_of_numbers[i] == 0) {
            ++counter;
        }
    }
    return counter;
}

int main() {
    ifstream fin("ciur.in");
    ofstream fout("ciur.out");
    int n;
    fin >> n;
    find_primality_of_first_n_numbers(n);
    fout << number_of_prime_numbers(n);
    return 0;
}