Cod sursa(job #2877817)
| Utilizator | Data | 25 martie 2022 13:29:32 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include <bits/stdc++.h>
using namespace std;
#define nmax 2000000
bool prim[nmax];
void sieve() {
prim[1] = true;
for (int i = 3; i * i<= nmax; i += 2) {
if (!prim[i]) {
for (int j = i * i; j <= nmax; j += i) {
prim[j] = true;
}
}
}
for (int i = 4; i <= nmax; i += 2) {
prim[i] = true;
}
}
int main() {
ifstream in("ciur.in");
ofstream out("ciur.out");
int n;
in >> n;
sieve();
int nrprim = 1;
for (int i = 3; i <= n; ++i) {
if (!prim[i]) ++nrprim;
}
out<<nrprim;
}
