use std::fs;
use std::io::{BufWriter, Write};
fn main() {
let file = fs::File::create("ciur.out").unwrap();
let mut writer = BufWriter::new(file);
let input: String = fs::read_to_string("ciur.in").unwrap();
let mut tokens = input.split_whitespace();
let mut next_num = || -> usize {
tokens.next().unwrap().parse::<usize>().unwrap()
};
let n = next_num();
let mut sieve = vec![false; n + 1];
for i in 2..=n {
if sieve[i] == true { continue; }
for j in (i+i..=n).step_by(i) {
sieve[j] = true;
}
}
let mut primes: i32 = 0;
for i in 2..=n {
if sieve[i] == false {
primes += 1;
}
}
writeln!(writer, "{}", primes).unwrap();
}