Pagini recente » Cod sursa (job #3325393) | Cod sursa (job #900724) | Cod sursa (job #352412) | Cod sursa (job #1904541) | Cod sursa (job #3348244)
#include <bits/stdc++.h>
using namespace std;
#ifndef LOCAL
ifstream fin("ciur.in");
ofstream fout("ciur.out");
#define cin fin
#define cout fout
#endif
constexpr int NMAX = 2e6+1;
bitset<NMAX> sieve(int n) {
bitset<NMAX> isPrime(true);
isPrime[0] = isPrime[1] = false;
for(int i = 2; i * i <= n; ++i) {
if(isPrime[i]) {
for(int j = i * i; j <= n; j += i)
isPrime[j] = false;
}
}
return isPrime;
}
signed main() {
int n; cin >> n;
bitset<NMAX> isPrime = sieve(n);
int cnt = 0;
for(int i = 2; i <= n; ++i) {
cnt += isPrime[i];
}
cout << cnt << '\n';
return 0;
}