#define _GLIBCXX_DEBUG
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define ALL(v) v.begin(), v.end()
typedef long long ll;

template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }

#include <bits/stdc++.h>
using namespace std;

int main(){
  int a[1000010];
  rep(i,1000010) a[i]=1;
  
  rep(i,1000000){
    if(i<2){
      a[i]=0;
      continue;
    }
    if(i==2){
      a[i]=1;
      continue;
    }
    else if(i%2==0){
      a[i]=0;
      continue;
    }
    
    for(int j=3;j*j<=i;j+=2){
      if(i%j==0){
        a[i]=0;
        continue;
      }
    }
  }
  
  int dp[1000010];
  dp[0]=0;
  for(int i=1;i<1000009;i++){
    if(a[i]) dp[i]=dp[i-1]+1;
    else dp[i]=dp[i-1];
  }
  
  int n;
  while(cin>>n){
    cout<<dp[n]<<endl;
  }
  
  return 0;
}
