#include <iostream>
#include <cmath>

void setPrimesUnder(int n, bool *p){
    if(n > 2){
        setPrimesUnder(sqrt(n), p);
        for(int i=2; i<=sqrt(n); i++){
            if(!p[i])                       // if i is not a prime
                continue;                   // i++
            for(int j=2; j<=1000000/i; j++) // if i is a prime
                p[i*j] = false;             // the other multiples of i is not a prime
        }
    }
    else{
        p[0] = false;
        p[1] = false;
        p[2] = true;
    }
}

int main(){
    int n;
    bool p[1000000];
    for(int i=0; i<1000000; i++)
        p[i] = true;
    setPrimesUnder(1000000, p);
    
    while(std::cin >> n){
        int count = 0;
        for(int i=0; i<=n; i++){
            if(p[i])
                count++;
        }
        std::cout << count << std::endl;
    }
    return 0;
}