Domanda
Siamo catturati dall'esercito di robot nella loro stazione spaziale. Il nostro pilota di navi spaziali è nella prigione che si trova al livello 1. C'è solo un modo per fuggire e sta salvando il tuo pilota di navi spaziali. Significa passare dal livello N al livello 1. Tuttavia, poiché è molto rischioso, devi raggiungere la prigione nel minor numero di passaggi possibile.
condizioni
Ci sono 4 modi per spostarsi:
- Passa dal livello N al livello N - 1
e.g. from 12 to 11 - Passa dal livello N al livello N + 1
e.g. from 12 to 13 - Usa il teletrasporto dal livello 2k al livello k
e.g. from 12 to 6 - Usa il teletrasporto dal livello 3k al livello k
e.g. from 12 to 4
- Passa dal livello N al livello N - 1
I teletrasporti sono solo a senso unico (puoi ottenere dalle 12 alle 4 ma è impossibile ottenere dalle 4 alle 12)
- Ogni azione fa un passo
Ingresso
L'input deve essere letto da STDIN o l'alternativa più vicina al linguaggio di programmazione. L'input è costituito da un numero intero in ncui 1 <= n <= 10^8.
Produzione
L'output dovrebbe essere il numero minimo di passaggi necessari per passare dal nlivello 1.
Esempi
Level Minimum number of steps
1 0
8 3
10 3
267 7
100,000,000 25
Prova a programmare il codice che ci aiuterà a salvare il nostro pilota di navi spaziali dalla prigione nel più breve tempo possibile e tornare a casa!
Vincerà il codice più corto!