#include <bits/stdc++.h>
using namespace std;
const int MAXLEN = 1e8 + 5;
vector <int> priNums;
int ans = 0;
int N;
bool book[MAXLEN];
void eulerSieve(int MAX) {
memset(book, true, sizeof(book));
priNums.push_back(-1);
for (int i = 2; i <= MAX; i ++) {
if (book[i]) {
priNums.push_back(i);
ans ++;
}
for (int j = 1; j < (int)priNums.size() && priNums[j] * i <= MAXLEN; j ++) {
book[i * priNums[j]] = false;
if (i % priNums[j] == 0) {
break;
}
}
}
}
int main() {
std::ios::sync_with_stdio(0);
cin >> N;
eulerSieve(N);
cout << ans;
return 0;
}