O matemático louco possui uma grande coleção de números e, portanto, o espaço que resta é bastante limitado. Para economizar alguns, ele deve dobrar seus números inteiros, mas infelizmente ele é realmente preguiçoso. Sua tarefa, se você deseja ajudá-lo, é criar uma função / programa que dobre um número inteiro positivo para o nosso número maníaco.
Como dobrar um número inteiro?
Se é igualmente divisível pela soma de seus dígitos, divida-o pela soma de seus dígitos. Se não atender a esse requisito, pegue o restante quando dividido pela soma de seus dígitos. Repita o processo até o resultado chegar 1
. O número inteiro dobrado é o número de operações que você teve que executar. Vamos dar um exemplo (digamos 1782
):
Obter a soma de seus dígitos:
1 + 7 + 8 + 2 = 18
.1782
é igualmente divisível por18
, então o próximo número é1782 / 18 = 99
.99
não é divisível por9 + 9 = 18
, por conseguinte, tomamos o restante:99 % 18 = 9
.9
é obviamente divisível por9
, então dividimos e obtemos1
.
O resultado é que 3
foram necessárias três operações para alcançar 1
.
Regras e especificações
Alguns números inteiros podem ter a soma dos dígitos iguais a
1
, como10
ou100
. Seu programa não precisa lidar com esses casos. Isso significa que você terá a garantia de que o número inteiro fornecido como entrada não tem a soma dos dígitos igual a1
, e nenhuma operação com o número inteiro especificado resultará em um número cuja soma dos dígitos seja1
(exceto1
ela mesma, que é o " alvo"). Por exemplo, você nunca receberá10
ou20
como entrada.A entrada será um número inteiro positivo maior que
1
.Aplicam-se lacunas padrão .
Você pode receber e fornecer saída por qualquer média padrão .
Casos de teste
Entrada -> Saída 2 -> 1 5 -> 1 9 -> 1 18 -> 2 72 -> 2 152790 -> 2 152 -> 3 666 -> 3 777 -> 3 2010 -> 3 898786854 -> 4
Aqui está um programa que permite visualizar o processo e tentar mais casos de teste.
Isso é código-golfe , então o código mais curto em cada idioma (marcado em bytes) vence!
8987868546
é uma entrada válida, ele vai quebrar a sua ferramenta de teste, e também muitos (se não todas) das respostas ...
898786854
, não 8987868546
(ter adicionado um 6
no final)
8987868546
não é 1 ( regra 1 atendida ) e 8987868546
é um número inteiro positivo maior que 1 ( regra 2 atendida ).