Pagini recente » Cod sursa (job #207192) | Cod sursa (job #264308) | Cod sursa (job #3348957) | Cod sursa (job #3345973) | Cod sursa (job #3348243)
#include <bits/stdc++.h>
using namespace std;
#ifndef LOCAL
ifstream fin("ciur.in");
ofstream fout("ciur.out");
#define cin fin
#define cout fout
#endif
vector<bool> sieve(int n) {
vector<bool> isPrime(n+1, 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;
vector<bool> isPrime = sieve(n);
int cnt = 0;
for(int i = 2; i <= n; ++i) {
cnt += isPrime[i];
}
cout << cnt << '\n';
return 0;
}