#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include <limits.h>
#include <math.h>

#include <iostream>
#include <string>
#include <vector>
#include <iostream>
#include <sstream>
#include <fstream>
#include <string>
#include <vector>
#include <deque>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <algorithm>
#include <functional>
#include <utility>
#include <bitset>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <cstdio>

using namespace std;

#define FOR(i,s,e) for((i)=(s);(i)<(int)(e);(i)++)
long long ll;

const int N = 1000000;
bool prime[N];
int cnt[N];

bool isPrime(int n) {
	int i;
	for (i=2; i<n; i++)
		if (n%i == 0) return false;
	return n != 1;
}

void setPrime(int n) {
	int i, j;
	prime[0] = prime[1] = false;
	for (i=2; i<=n; i++) prime[i] = true;

	for (i=2; i<=n; i++) {
//		if (isPrime(i)) prime[i] = true;
		if (prime[i])
			for (j=i*2; j<=n; j+=i) prime[j] = false;
	}
}

int main() {
	int i, j;
	int n;

	setPrime(N);

	for (i=2; i<N; i++) {
		cnt[i] = cnt[i-1];
		if (prime[i]) cnt[i]++;
	}

	while (scanf("%d ", &n) != EOF) {
		printf("%d\n", cnt[n]);
	}

	return 0;
}