#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<ctime>
#include<cctype>
#include<climits>
#include<iostream>
#include<string>
#include<vector>
#include<map>
#include<list>
#include<queue>
#include<deque>
#include<algorithm>
#include<numeric>
#include<utility>
#include<complex>
#include<memory>
#include<functional>

#define REP(i, n) for(int i = 0;i < n;i++)
#define REPR(i, n) for(int i = n;i >= 0;i--)
#define FOR(i, m, n) for(int i = m;i < n;i++)
#define FORR(i, m, n) for(int i = m;i >= n;i--)
#define SORT(v, n) sort(v, v+n);
#define VSORT(v) sort(v.begin(), v.end());
#define llong long long
#define pb(a) push_back(a)
#define INF 999999999
using namespace std;

typedef vector<int> vi;
typedef vector<long long> vl;
typedef vector<double> vd;
typedef pair<int, int> pii;
typedef pair<long, long> pll;
typedef long long ll;

int dy[] = { 0, 0, 1, -1, 0 };
int dx[] = { 1, -1, 0, 0, 0 };

int PrimeCount(int n){
	int count = 0;
	bool s;

	if (n > 2){
		count = 1;

		for (int i = 3; i <= n; i += 2){
			s = true;
			for (int j = 3; j <= sqrt(i); j += 2){
				if (i%j == 0){
					s = !s;
					break;
				}
			}

			if (s){
				count++;
			}
		}
	}



	return count;
}

int main(){
	ios::sync_with_stdio(false);

	int n;

	while (cin >> n){
		if (n == 1)
			cout << 0 << endl;
		else if (n == 2)
			cout << 1 << endl;
		else
			printf("%d\n", PrimeCount(n));
	}

}