Pagini recente » Cod sursa (job #3349641) | Cod sursa (job #3348958) | Monitorul de evaluare | Cod sursa (job #3345971) | Cod sursa (job #3348165)
#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 <= 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;
}