#include<iostream>
using namespace std;
bool data[100000005];
// zhishu用于存储质数的数组 ,cnt下标
int zhishu[100000000],cnt=0;
int main()
{
data[1] = 1;// 1表示素数
int n;
cin >> n;
// 循环遍历
for(int i=2;i<=n;i++){
if(data[i] == 0){
// 表明是质数 ,追加到质数数组中
zhishu[++cnt] = i;
}
// 需要将该数字i分别与质数表中数相乘
for(int j=1;j<=cnt&&zhishu[j]*i<=n;j++){
data[zhishu[j]*i]=1;
if(i%zhishu[j] == 0){
break;
}
}
}
cout<<cnt;
// for(int i=1;i<=cnt;i++){
// cout<<zhishu[i]<<" ";
// }
return 0;
}