Cod sursa(job #3316495)
| Utilizator | Data | 18 octombrie 2025 22:37:00 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include <bits/stdc++.h>
using namespace std;
// !!!
string PREFIX = "ciur";
int main()
{
ifstream cin(PREFIX + ".in");
ofstream cout(PREFIX + ".out");
int n;
cin >> n;
vector<bool>is_prime(n + 1, 1);
vector<int>primes;
int cnt = 0;
auto mark = [&] (int x) {
for (int p : primes) {
for (int j = 1; j * p * x <= n; j++)
is_prime[j * p * x] = 0;
}
};
primes.push_back(2);
mark(2);
for (int i = 3; i <= n; i += 2) {
if (is_prime[i]) {
cnt++;
mark(i);
}
}
cout << cnt << '\n';
}