Problem:
Score : 200 points

Problem Statement

Takahashi loves numbers divisible by 2.

You are given a positive integer N. Among the integers between 1 and N (inclusive), find the one that can be divisible by 2 for the most number of times. The solution is always unique.

Here, the number of times an integer can be divisible by 2, is how many times the integer can be divided by 2 without remainder.

For example,

6 can be divided by 2 once: 6 -> 3.

8 can be divided by 2 three times: 8 -> 4 -> 2 -> 1.

3 can be divided by 2 zero times.

Constraints

1 ≤ N ≤ 100

Input

Input is given from Standard Input in the following format:

N

Output

Print the answer.

Sample Input 1

7

Sample Output 1

4

4 can be divided by 2 twice, which is the most number of times among 1, 2, ..., 7.

Sample Input 2

32

Sample Output 2

32

Sample Input 3

1

Sample Output 3

1

Sample Input 4

100

Sample Output 4

64

Solution in Ruby (2.3.3) (judge verdict: Accepted)

# 高橋君は 2 で割れる数が好きです。
# 正整数 N が与えられるので、1 以上 N 以下の整数のうち、
# 最も 2 で割れる回数が多いものを求めてください。
# 答えは必ず 1 つに定まります。
# なお、2 で割っていき、何回あまりが出ずに割れるかを、
# 2 で割れる回数と呼ぶことにします。
# 例えば
#   6 ならば、6 -> 3で、1 回 2 で割れます。
#   8 ならば、8 -> 4 -> 2 -> 1で、3 回 2 で割れます。
#   3 ならば、0 回 2 で割れます。

n = gets.chomp.to_i

break_count_top = 0
break_count_top_num = 1

(1..n).each do |num|
  break_count = 0
  num_sandbox = num
  
  loop do
    if num_sandbox % 2 == 0
      break_count += 1
      num_sandbox /= 2
    else
      break
    end
  end
  
  if break_count > break_count_top
    break_count_top = break_count
    break_count_top_num = num
  end
end

puts break_count_top_num