#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;
}