print963. Унарная система счисления

printУнарная система счисления

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

В унарной системе счисления натуральные числа записываются как соответствующее количество "палочек". Например, число 3 записывается как |||, а число 7 – как |||||||. Понятно, что с большими числами работать в унарной системе счисления неудобно. К счастью, есть арифметические операции + (сложение) и `times` (умножение). Пользуясь этими операциями, можно весьма компактно записывать унарные числа. Например, число 53 можно записать как |||||`times`|||||`times`||+|||, то есть 5*5*2+3, затратив всего лишь 21 "палочку". Откуда 21? – спросите вы – всего 15! Верно, 5+5+2+3=15, но вы не учли, что знаки умножения и сложения состоят из двух "палочек" каждый, вот и недостающие 6 "палочек". Углублённые исследования показали, что число 53 в унарной системе счисления никаким способом нельзя записать, использовав менее, чем 21 "палочку". Учтите, что использование скобок в записи унарных чисел категорически не допускается!
Напишите программу, которая находит минимальное количество "палочек", достаточное для записи унарного числа `N`.
Ввод
Входной файл может содержать несколько тестов (точнее, несколько тысяч). Каждый тест состоит из одного натурального числа `N` (`N\ ≤\ 5000`).
Вывод
Для каждого теста из входного файла запишите в выходной файл (в отдельной строке) найденное минимальное количество "палочек".

Пример ввода

35
37
53

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

14
17
21
Источник: Весенний турнир имени Мартовского Зайца, 2007
loading