#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
#include<string>
#include<algorithm>
#include<iostream>
#include<stack>
#include<queue>
#include<vector>
#include<map>
#include<set>
using namespace std;
int prime[999999];
void reshan(int input)
{
	int i,j;
	int flag=0;
	for(i=2;i<=input;i++)
	{
		if(prime[i]==0)
		{
			flag++;
		}
	}
	printf ("%d\n",flag);
}
int main ()
{
    int input,i,j;
    memset(prime,0,sizeof(prime));
	prime[0]=prime[1]=1;
	for(i=2;i<999999;i++)
	{
		if(prime[i]==0)
		{
			for(j=i+i;j<999999;j+=i)
			{
				prime[j]=1;
			}
		}
	}
   while(scanf("%d",&input)!=EOF)
   {
       reshan(input);
   }
   return 0;
}