#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
vector<int> table;
bool isprim[100000001];
int n;
int main(){
int n;
cin >> n;
memset(isprim, true, sizeof(isprim));
isprim[1] = false;
for(int i = 2; i <= n; i++) {
if(isprim[i]) {
table.push_back(i);
}
for(int j = 0; j <= table.size() && i * table[j] <= n; j++) {
isprim[i * table[j]] = false;
if(i % table[j] == 0) {
break;
}
}
}
cout << table.size() << endl;
return 0;
}