El loco matemático posee una amplia colección de números y, por lo tanto, el espacio que le queda es bastante limitado. Para salvar a algunos, debe doblar sus enteros, pero desafortunadamente es muy vago. Su tarea, si desea ayudarlo, es crear una función / programa que pliegue un entero positivo dado para nuestro número loco.
¿Cómo doblar un número entero?
Si es divisible por la suma de sus dígitos, divídalo por la suma de sus dígitos. Si no cumple con ese requisito, tome su resto cuando se divida por la suma de sus dígitos. Repita el proceso hasta que llegue el resultado 1
. El número entero plegado es el número de operaciones que tuvo que realizar. Tomemos un ejemplo (digamos 1782
):
Obtener la suma de sus dígitos:
1 + 7 + 8 + 2 = 18
.1782
es divisible por18
, entonces el siguiente número es1782 / 18 = 99
.99
No es divisible por9 + 9 = 18
, por lo tanto, tomamos el resto:99 % 18 = 9
.9
obviamente es divisible por9
, entonces lo dividimos y obtenemos1
.
El resultado es 3
, porque se necesitaron 3 operaciones para llegar 1
.
Reglas y especificaciones
Algunos enteros pueden tener la suma de dígitos igual a
1
, como10
o100
. Su programa no necesita manejar tales casos. Eso significa que se le garantizará que el entero dado como entrada no tiene la suma de dígitos igual a1
, y ninguna operación con el entero dado dará como resultado un número cuya suma de dígitos es1
(a excepción de1
sí mismo, que es el " objetivo"). Por ejemplo, nunca recibirá10
ni20
como entrada.La entrada será un número entero positivo mayor que
1
.Se aplican las lagunas predeterminadas .
Puede tomar entrada y proporcionar salida por cualquier medio estándar .
Casos de prueba
Entrada -> Salida 2 -> 1 5 -> 1 9 -> 1 18 -> 2 72 -> 2 152790 -> 2 152 -> 3 666 -> 3 777 -> 3 2010 -> 3 898786854 -> 4
Aquí hay un programa que le permite visualizar el proceso y probar más casos de prueba.
Este es el código de golf , por lo que gana el código más corto en cada idioma (puntuado en bytes).
8987868546
es una entrada válida, romperá su herramienta de prueba, y también muchas (si no todas) las respuestas ...
898786854
, no 8987868546
(ha agregado un 6
al final)
8987868546
no es 1 (se cumple la Regla 1 ) y 8987868546
es un entero positivo mayor que 1 ( Se cumple la Regla 2 ).