Cod sursa(job #3306540)

Utilizator alesiodemiriAlesio Demiri alesiodemiri Data 11 august 2025 23:18:11
Problema Ciurul lui Eratosthenes Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.16 kb
#include <iostream>
#include <queue>
#include <algorithm>
#include <set>
#include <map>
#include <stack>
#include <vector>
#include <string>
#include <deque>
#include <unordered_map>
#include <unordered_set>
#include <cmath>
#include <iomanip>

using namespace std;

#define ll long long

// Global variables
int n;

void ReadData() {
    cin >> n;
}

void Solve() {
    if (n == 1){
        cout << "0\n";
        return;
    }
    if (n == 2){
        cout << "1\n";
        return;
    }

    unordered_set<int> primes;
    primes.insert(2);

    for(int i = 3; i <= n; i++){
        bool isPrime = true;
        for(int prime: primes){
            if(i % prime == 0){
                isPrime = false;
                break;
            }        
        }
        if(isPrime){
            primes.insert(i);
        }
        
    }

    cout << primes.size() << "\n";
    return;
    
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    freopen("ciur.in", "r", stdin);
    freopen("ciur.out", "w", stdout);

    int t = 1;
    // cin >> t; // Uncomment for multiple test cases
    while (t--) {
        ReadData();
        Solve();   
    }
    return 0;
}