Cod sursa(job #2778959)
| Utilizator | Data | 2 octombrie 2021 14:00:12 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include <iostream>
#include <fstream>
#include <bitset>
using namespace std;
const int maxval = 2048576;
bool primes[maxval];
ifstream fin("ciur.in");
ofstream fout("ciur.out");
void Eratostene() {
primes[0] = primes[1] = 1; //1 - nu e prim
for (int i = 2; i * i <= maxval; i++) {
if (!primes[i])
for (int d = i * i; d <= maxval; d += i)
primes[d] = 1;
}
}
int main() {
int n, prim = 0;
cin >> n;
Eratostene();
for (int i = 1; i <= n; i++) {
if (!primes[i]) prim++;
}
cout << prim;
}