#include <stdio.h>
#include <stdlib.h>
#define max 10000000
#define bool char //定以bool类型
#define true 1
#define false 0 //规定1为对0为错(c语言中没有bool函数)
int prime[max];
bool is_prime[max];
int sieve(int n)
{
int p=0;
for(int i=0;i<=n;i++)
{
is_prime[i]=1;
}
is_prime[0]=is_prime[1]=0; //1和0不是素数
for(int i=2;i<=n;i++)
{
if(is_prime[i]==1) //是素数的时候
{
prime[p++]=i; //p统计素数个数
for(int j=2*i;j<=n;j+=i)
{
is_prime[j]=0; //是素数倍数数不是素数
}
}
}
return p;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",sieve(n));
return 0;
}