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];
let mut i = 3;
loop {
if sieve[i] == false {
for j in (i*i..=n).step_by(2 * i) {
sieve[j] = true;
}
}
i += 2;
if i * i > n {
break;
}
}
let mut cnt: usize = 0;
for i in 2..=n {
if sieve[i] == true {
cnt += 1;
}
}
writeln!(writer, "{}", (n + 1) / 2 - cnt).unwrap();
}