Вопрос
Мы захвачены армией роботов на их космической станции. Наш пилот космического корабля находится в тюрьме, которая находится на уровне 1. Есть только один способ, как сбежать, и это спасает вашего пилота космического корабля. Это означает переход с уровня N на уровень 1. Однако, поскольку это очень рискованно, вам нужно попасть в тюрьму за наименьшее количество шагов.
условия
Есть 4 способа как двигаться:
- Переход с уровня N на уровень N - 1
e.g. from 12 to 11
- Перейти с уровня N на уровень N + 1
e.g. from 12 to 13
- Используйте телепорт с уровня 2k до уровня k
e.g. from 12 to 6
- Используйте телепорт с уровня 3k до уровня k
e.g. from 12 to 4
- Переход с уровня N на уровень N - 1
Телепорты только односторонние (вы можете получить от 12 до 4, но невозможно получить от 4 до 12)
- Каждое действие занимает один шаг
вход
Ввод следует читать из STDIN или ближайшей альтернативы на вашем языке программирования. Вход состоит из целого числа, n
где 1 <= n <= 10^8
.
Выход
Выходными данными должно быть минимальное количество шагов, необходимых для перехода n
на уровень 1.
Примеры
Level Minimum number of steps
1 0
8 3
10 3
267 7
100,000,000 25
Попробуйте закодировать программу, которая поможет нам в кратчайшие сроки спасти нашего пилота космического корабля из тюрьмы и вернуться домой!
Самый короткий код выиграет!