Il folle matematico possiede una vasta collezione di numeri, e quindi lo spazio che ha lasciato è piuttosto limitato. Per salvarne un po ', deve piegare i suoi numeri interi, ma sfortunatamente è davvero pigro. Il tuo compito, se desideri aiutarlo, è creare una funzione / programma che pieghi un dato intero positivo per il nostro maniaco numerico.
Come piegare un numero intero?
Se è uniformemente divisibile per la somma delle sue cifre, dividerlo per la somma delle sue cifre. Se non soddisfa tale requisito, prendi il resto quando diviso per la somma delle sue cifre. Ripeti il processo fino a quando il risultato non raggiunge 1
. Il numero intero piegato è il numero di operazioni che è stato necessario eseguire. Facciamo un esempio (diciamo 1782
):
Ottenere la somma delle sue cifre:
1 + 7 + 8 + 2 = 18
.1782
è uniformemente divisibile per18
, quindi il numero successivo è1782 / 18 = 99
.99
Non è divisibile per9 + 9 = 18
, quindi prendiamo il resto:99 % 18 = 9
.9
è ovviamente divisibile per9
, quindi lo dividiamo e otteniamo1
.
Il risultato è 3
perché sono necessarie 3 operazioni per raggiungere 1
.
Regole e specifiche
Alcuni numeri interi possono avere la somma di cifre pari a
1
, come10
o100
. Non è necessario che il tuo programma gestisca tali casi. Ciò significa che ti verrà garantito che il numero intero indicato come input non ha la somma delle cifre uguale a1
, e nessuna operazione con il numero intero dato si tradurrà in un numero la cui somma delle cifre è1
(tranne che per1
se stesso, che è il " bersaglio"). Ad esempio, non riceverai mai10
o20
come input.L'input sarà un numero intero positivo maggiore di
1
.Si applicano le lacune predefinite .
Puoi prendere input e fornire output con qualsiasi media standard .
Casi test
Ingresso -> Uscita 2 -> 1 5 -> 1 9 -> 1 18 -> 2 72 -> 2 152790 -> 2 152 -> 3 666 -> 3 777 -> 3 2010 -> 3 898786854 -> 4
Ecco un programma che ti consente di visualizzare il processo e provare altri casi di test.
Questo è code-golf , quindi vince il codice più corto in ogni lingua (segnato in byte)!
8987868546
è un input valido, romperà il tuo strumento di test e anche molte (se non tutte) le risposte ...
898786854
no 8987868546
(hai aggiunto 6
a alla fine)
8987868546
non è 1 ( regola 1 soddisfatta ) ed 8987868546
è un numero intero positivo superiore a 1 ( regola 2 soddisfatta ).