Ограничения: время – 200ms/500ms, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод 
Послать решение Blockly Посылки Темы Где Обсудить (0) 
Третьеклассник Вася прочитал в одной книге, что в компьютере используются
для вычислений двоичные числа. Так как никаких пояснений в книге не было,
Вася предположил, что двоичные числа — это числа, в записи которых используется только цифра 2,
т.е. «двоичными» числами будут числа 2, 22, 222, 2222 и т. д. По предположениям Васи все
числа в компьютере представляются в виде произведения «двоичных» чисел. Если какое-либо число
представить в таком виде нельзя, то используется ближайшее к нему большее число, представимое в виде
произведения «двоичных» чисел. Поэтому в килобайте 1024 байта, а не 1000 байт, так как вместо
числа 1000 используется число 1024, которое является произведением десяти чисел 2.
Напишите программу, которая для заданного числа X находит наименьшее число Y , представимое
в виде произведения «двоичных» чисел. Например, для числа X=70 таким числом является Y=2*2*22=88.
В первой строке содержатся одно целое число X (2\ ≤\ X\ ≤\ 10^18).
Вывести одно целое число Y.
Пояснение: В данной задаче произведением считается значение, полученное в результате умножения одного или более чисел, то есть в предельном случае может состоять из одного "двоичного" числа.
Для
X=21 ответ равен 22.