#include<stdio.h>
#define MAX 1000010

int is_prime[MAX];

void sieve(){
  int i,j;
  for(i=0;i<=MAX;i++)is_prime[i]=1;
  is_prime[0]=is_prime[1]=0;
  for(i=2;i<=MAX;i++){
    if(is_prime[i]){
      for(j=2*i;j<=MAX;j+=i)is_prime[j]=0;
    }
  }
}

int main(){
  int a,i;
  int sum[MAX];
  sieve();
  for(i=0;i<MAX;i++)sum[i]=0;
  for(i=1;i<MAX;i++)sum[i]=sum[i-1]+is_prime[i];
  while(scanf("%d",&a)!=EOF){
    printf("%d\n",sum[a]);
  }
  return 0;
}