Cod sursa(job #2449509)
| Utilizator | Data | 19 august 2019 22:54:47 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include <cstdio>
#include <bitset>
using namespace std;
const int N = 2000001;
bitset <N> p;
int main() {
freopen ("ciur.in", "r", stdin);
freopen ("ciur.out", "w", stdout);
for (int i = 3; i < N; i += 2)
p[i] = 1;
p[2] = 1;
for (int i = 3; i * i < N; i += 2)
if (p[i])
for (int j = i * i; j < N; j += 2 * i)
p[j] = 0;
int cnt = 0;
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++)
cnt += p[i];
printf("%d\n", cnt);
return 0;
}
