#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
#define N 10000000
int a[N];
int p[N];
int cnt;
void Init(){
    memset(a,0,sizeof(a));
    cnt=0;
    for(int i=2;i<N;i++){
        if(a[i]==0){
            p[cnt++]=i;
        }
        for(int j=0;j<cnt&&i*p[j]<N;j++){
            a[i*p[j]]=1;
            if(i%p[j]==0)break;//?个合数?被它的最小素因子?去正好一次
        }
    }
}
int main(){
    Init();
    int n;
    while(~scanf("%d",&n)){
        int k=lower_bound(p,p+n,n)-p+1;
        if(a[n]==0)printf("%d\n",k);
        else printf("%d\n",k-1);
    }
    return 0;
}