#include<bits/stdc++.h>
#define rep(i,n) for(int i=0; i<n; i++)
#define rrep(i,n) for(int i=n-1; i>=0; i--)

using namespace std;

typedef long long ll;
typedef vector<int> vi;
typedef pair<int,int> pi;
typedef long double lb;

const int INF=1<<27;
const int MOD=(int)1e9+7;

int main(void)
{
	int n[30];
	bool po[1000001];
	rep(i,1000001)po[i]=true;
	int prime[1000001]={0};
	po[0]=false;
	po[1]=false;
	int cnt;
	while(cin>>n[cnt]) cnt++;

	int m=0;
	rep(i,cnt) m=max(n[i],m);

	for(int j=2;j<=m;j++){
		if(po[j]){
			prime[j]=prime[j-1]+1;
			for(int k=1;j*k<=m;k++) {
				po[j*k]=false;
			}
		}else{
			prime[j]=prime[j-1];
		}
	}

	rep(i,cnt) cout << prime[n[i]] << endl;

        return 0;
}