Загрузка [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

printРабочее место участника

printЗадачи

1702. Двоичные числа

Ограничения: время – 200ms/500ms, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0) idea

Третьеклассник Вася прочитал в одной книге, что в компьютере используются для вычислений двоичные числа. Так как никаких пояснений в книге не было, Вася предположил, что двоичные числа — это числа, в записи которых используется только цифра 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.

Пример ввода

70

Пример вывода

88
Пояснение: В данной задаче произведением считается значение, полученное в результате умножения одного или более чисел, то есть в предельном случае может состоять из одного "двоичного" числа.
Для X=21 ответ равен 22.
loading