Cod sursa(job #2949597)

Utilizator KRISTY06Mateiu Ianis Cristian Vasile KRISTY06 Data 1 decembrie 2022 09:31:38
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <iostream>
#include <bitset>
using namespace std;

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

const int MAX_VALUE = 2000000;

bitset<MAX_VALUE + 1> frequency;

void primesLessEqualNumber(int n, int &primeCounter) {
    for (int divisor = 2; divisor * divisor <= n; ++divisor) {
        if (frequency[divisor] == 0) {
            for (int number = 2; number * divisor <= n; ++number) {
                if (frequency[divisor * number] == 0) {
                    frequency[divisor * number] = 1;
                    --primeCounter;
                }
            }
        }
    }
}

int main() {
    int n;
    fin >> n;
    int primeCounter = n - 1;
    primesLessEqualNumber(n, primeCounter);
    fout << primeCounter;
    return 0;
}