var tblPrimeSum = new Array(1000000);
var primePrv = new Array(1000000);

function primeGenerator()
{
    var p, fact, m, cnt;
    var maxN = 9999999;
    var primeNxt = new Array(1000000);

    // Initial
    for(p=2;p<=maxN;++p){
        primeNxt[p] = p + 1;
        primePrv[p] = p - 1;
    }
    primePrv[2] = 0;
    primeNxt[maxN] = 0;
    tblPrimeSum[0] = tblPrimeSum[1] = 0;
    tblPrimeSum[2] = 1;
    
    // Make prime table (primeNxt)
    for(p=2;p*p<=maxN;p=primeNxt[p]){
        for(fact=p;p*fact<=maxN;fact=primeNxt[fact]){
            for(m=p*fact;m<=maxN;m*=p){
                primeNxt[primePrv[m]] = primeNxt[m];
                primePrv[primeNxt[m]] = primePrv[m];
            }
        }
    }

    cnt = 0;
    for(m=2;m>0;m=primeNxt[m]){
        ++cnt;
        tblPrimeSum[m] = cnt;
    }
}

process.stdin.resume();
process.stdin.setEncoding('utf8');
 
process.stdin.on('data', function(input){
    primeGenerator();
    input.trim().split('\n').forEach(function(val){
        var N = parseInt(val);
        if( tblPrimeSum[N] == 0 ){
            console.log(tblPrimeSum[primePrv[N]]);
        }
        else{
            console.log(tblPrimeSum[N]);
        }
    });
});