MAX = 1_000_000

is_prime_list = [false, false] + [true] * MAX
square_max = (MAX.to_f**0.5).ceil

2.upto(square_max) do |i|
  next unless is_prime_list[i]
  (i*i).step(MAX, i) do |j|
    is_prime_list[j] = false
  end
end

count = 0
prime_count_list = [0, 1]
2.upto(MAX) do |i|
  count += 1 if is_prime_list[i]
  prime_count_list[i] = count
end

while gets
  puts prime_count_list[$_.to_i]
end