#include typedef long long ll; #define FOR(i,l,r) for (int i=l;i<=r;i++) #define FOD(i,r,l) for (int i=r;i>=l;i--) #define fast ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); #define pub push_back #define pob pop_back #define ii pair #define pll pair #define F first #define S second typedef unsigned long long int ull; using namespace std; const int N = 1e6+5; ll n; bool isPrime[N]; void sieve(){ for(int i = 0; i <= N;++i) { isPrime[i] = true; } isPrime[0] = false; isPrime[1] = false; for(int i = 2; i * i <= N; ++i) { if(isPrime[i] == true) { for(int j = i * i; j <= N; j += i) isPrime[j] = false; } } } void solve(){ cin >> n; sieve(); ll d = 0; ll p = sqrt(sqrt(n)); FOR(i,1,p) if (isPrime[i]) ++d; cout << d; } int main(){ fast; freopen("BEAUNUM.inp","r",stdin); freopen("BEAUNUM.out","w",stdout); solve(); return 0; }