Questão
Somos capturados pelo exército de robôs em sua estação espacial. Nosso piloto de nave espacial está na prisão, no nível 1. Há apenas uma maneira de escapar e resgatar seu piloto de nave espacial. Isso significa passar do nível N para o nível 1. No entanto, como é muito arriscado, você precisa chegar à prisão no menor número de etapas possível.
Condições
Existem 4 maneiras de mover:
- Mover do nível N para o nível N - 1
e.g. from 12 to 11 - Mover do nível N para o nível N + 1
e.g. from 12 to 13 - Use o teleporte do nível 2k para o nível k
e.g. from 12 to 6 - Use o teleporte do nível 3k para o nível k
e.g. from 12 to 4
- Mover do nível N para o nível N - 1
O teleporte é apenas de mão única (você pode ir de 12 a 4, mas é impossível ir de 4 a 12)
- Toda ação dá um passo
Entrada
A entrada deve ser lida em STDIN, ou a alternativa mais próxima em sua linguagem de programação. A entrada consiste em um número inteiro nonde 1 <= n <= 10^8.
Resultado
A saída deve ser o número mínimo de etapas necessárias para ir npara o nível 1.
Exemplos
Level Minimum number of steps
1 0
8 3
10 3
267 7
100,000,000 25
Tente codificar um programa que nos ajudará a salvar o piloto da nave espacial da prisão no menor tempo possível e voltar para casa!
O código mais curto vencerá!