Питання
Нас захоплює армія роботів на їх космічній станції. Наш пілот космічного корабля знаходиться у в'язниці, яка знаходиться на рівні 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
Спробуйте зашифрувати програму, яка допоможе нам в найкоротші терміни врятувати наш пілот космічного корабля з в'язниці та повернутися додому!
Найкоротший код виграє!