#include <cstdio>
#include <cstring>
#define MAX_N 1000001

bool IsPrime[MAX_N];
int cnt[MAX_N];

// エラトステネスの篩
void get_primes() {
    IsPrime[0] = false;
    IsPrime[1] = false;

    for (int i = 2; i*i <= MAX_N; i++) {
        if (IsPrime[i]) {
            for (int j = i*i; j <= MAX_N; j += i) {
                IsPrime[j]= false;
            }
        }
    }
}

int main() {
    int n;

    memset(IsPrime, 1, sizeof(IsPrime));
    get_primes();

    for (int i = 0; i <= MAX_N; i++) {
        if (IsPrime[i]) { cnt[i]++; }
    }
    for (int i = 1; i <= MAX_N; i++) {
        cnt[i] += cnt[i-1];
    }

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

    return 0;
}
