#include <fstream>
#include <iostream>
using namespace std;
int upperBound, numberOfPrimeValues;
bool numbers[2000001];
void readUpperBound()
{
ifstream fin("ciur.in");
fin >> upperBound;
fin.close();
}
int sieveOfEratosthenes()
{
numberOfPrimeValues++;
for(int i = 3; i <= upperBound; i += 2)
{
if(!numbers[i])
{
numberOfPrimeValues++;
for(int j = i * 2; j <= upperBound; j += i)
numbers[j] = true;
}
}
return numberOfPrimeValues;
}
void printSolution()
{
ofstream fout("ciur.out");
fout << sieveOfEratosthenes();
fout.close();
}
int main()
{
readUpperBound();
printSolution();
return 0;
}