Pagini recente » Cod sursa (job #2457307) | Cod sursa (job #2582887) | Cod sursa (job #264875) | Cod sursa (job #1996625)
#include <fstream>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
pair<vector<int>, vector<int>> Sieve(int n) {
vector<int> primes;
vector<int> divisor(n + 1);
for (int i = 2; i <= n; ++i) {
if (divisor[i] == 0) {
primes.push_back(i);
divisor[i] = i;
}
for (int j = 1; j <= divisor[i] && primes[j] * i <= n; ++j) {
divisor[primes[j] * i] = j;
}
}
return make_pair(primes, divisor);
}
int main() {
#ifdef INFOARENA
ifstream cin("ciur.in");
ofstream cout("ciur.out");
#endif
int n; cin >> n;
cout << Sieve(n).first.size() << '\n';
}