Pagini recente » Cod sursa (job #2144594) | Cod sursa (job #167586) | Cod sursa (job #3198379) | Cod sursa (job #2776058) | Cod sursa (job #2917475)
#include <bits/stdc++.h>
using namespace std;
#define N 2000001
ifstream f("ciur.in");
ofstream g("ciur.out");
int n;
bool v[N];
void ciur(int k) {
// cum gasim un numar neprim > k, il marcam
for (int i = k + 2; i <= n; i+=2)
if (i % k == 0)
v[i] = false;
}
int main() {
f >> n;
// 2 este singurul numar prim par
v[2] = true;
int cnt = 1;
// presupunem ca toate numerele impare sunt prime
for (int i = 3; i <= n; i+=2)
v[i] = true;
for (int i = 3; i <= sqrt(n); i+=2)
ciur(i);
for (int i = 3; i <= n; i+=2)
if (v[i] == true)
cnt += 1;
g << cnt << "\n";
return 0;
}