Cod sursa(job #2831674)
Utilizator | Cristian Chris.s | Data | 11 ianuarie 2022 21:11:20 |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.63 kb |
#include <iostream>
using namespace std;
const int N = 2e6;
bool prim[N + 1];
void Ciur(int n)
{
for (int i = 2; i <= n; ++i)
prim[i] = true;
for (int i = 2; i * i <= n; ++i)
if (prim[i])
for (int j = 2; i * j <= n; ++j)
prim[i * j] = false;
}
int main()
{
Ciur(N);
int n;
cin >> n;
int nr = 2, cnt = 0;
while (nr <= n)
{
if (prim[nr])
cnt++;
if (nr == 2)
nr++;
else
nr += 2;
}
cout << cnt;
}