#include<stdio.h>
#include<string.h>
#define Max 1000100
int a[Max];
void maxprimefactor()
{
int i,j;
a[1]=1;
for(i=2;i<Max;i++)//i=2;
{
if(a[i]==0)
{
for(j=1;i*j<Max;j++)
a[i*j]=i;
}
}
}
bool visit[Max];
int prime[Max];
int hash[Max];
void init_prim()
{
memset(visit,true,sizeof(visit));
int num=0;
hash[1]=0;
for(int i=2;i<=Max;i++)
{
if(visit[i])
{
num++;
prime[num]=i;
hash[i]=num;
}
for(int j=1;j<=num&&i*prime[j]<=Max;j++)
{
visit[i*prime[j]]=false;
if(i%prime[j]==0)break;
}
}
}
int main()
{
int n;
maxprimefactor();
init_prim();
while(scanf("%d",&n)!=EOF)
{
printf("%d\n",hash[a[n]]);
}
return 0;
}