Pagini recente » Cod sursa (job #3356066) | Cod sursa (job #1439098) | Cod sursa (job #274481) | Cod sursa (job #2368984) | Cod sursa (job #3348164)
#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;
isPrime.set();
isPrime[0] = isPrime[1] = false;
for(int i = 2; 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;
}