#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

const int maxn = 1e7+7;
const int INF=0x3f3f3f3f;
int isP[maxn];
int pri[maxn];
int cnt;
void getP()
{
    for(int i=2; i<maxn; i++)isP[i]=1;
    memset(pri,INF,sizeof(pri));
    pri[0]=0;
    cnt=0;
    for(int i=2; i<maxn; i++)
        if(isP[i])
        {
            pri[++cnt]=i;
            for(int j=i+i; j<maxn; j+=i)
            {
                isP[j]=0;
            }
        }
}

int main()
{
    getP();
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        int l=0,r=cnt+1;
        while(r-l>1){
            int mid=(r+l)>>1;
            if(pri[mid]<=n){
                l=mid;
            }else {
                r=mid;
            }
        }
        printf("%d\n",l);
    }
    return 0;
}

