Le mathématicien fou possède une vaste collection de nombres, et donc l'espace qu'il a laissé est assez limité. Pour en sauver, il doit plier ses entiers, mais malheureusement il est vraiment paresseux. Votre tâche, si vous souhaitez l'aider, est de créer une fonction / programme qui plie un entier positif donné pour notre maniaque des nombres.
Comment plier un entier?
S'il est divisible par la somme de ses chiffres, divisez-le par la somme de ses chiffres. S'il ne répond pas à cette exigence, prenez son reste lorsqu'il est divisé par la somme de ses chiffres. Répétez le processus jusqu'à ce que le résultat atteigne 1
. L'entier replié est le nombre d'opérations que vous avez dû effectuer. Prenons un exemple (disons 1782
):
Obtenez la somme de ses chiffres:
1 + 7 + 8 + 2 = 18
.1782
est divisible par18
, donc le nombre suivant est1782 / 18 = 99
.99
n'est pas divisibles par9 + 9 = 18
, d' où nous prenons le reste:99 % 18 = 9
.9
est évidemment divisible par9
, donc nous le divisons et obtenons1
.
Le résultat est 3
, car 3 opérations ont été nécessaires pour atteindre 1
.
Règles et spécifications
Certains nombres entiers peuvent avoir la somme de chiffres égaux à
1
, tels que10
ou100
. Votre programme n'a pas besoin de gérer de tels cas. Cela signifie que vous serez assuré que l'entier donné en entrée n'a pas la somme des chiffres égale à1
, et qu'aucune opération avec l'entier donné ne donnera un nombre dont la somme des chiffres est1
(sauf pour1
lui-même, qui est le " cible"). Par exemple, vous ne recevrez jamais10
ou20
en entrée.L'entrée sera un entier positif supérieur à
1
.Les échappatoires par défaut s'appliquent.
Vous pouvez prendre des entrées et fournir des sorties par n'importe quel moyen standard .
Cas de test
Entrée -> Sortie 2 -> 1 5 -> 1 9 -> 1 18 -> 2 72 -> 2 152790 -> 2 152 -> 3 666 -> 3 777 -> 3 2010 -> 3 898786854 -> 4
Voici un programme qui vous permet de visualiser le processus et d'essayer plus de cas de test.
C'est le code-golf , donc le code le plus court dans chaque langue (marqué en octets) gagne!
8987868546
c'est une entrée valide, cela cassera votre outil de test, et aussi beaucoup (sinon toutes) des réponses ...
898786854
, non 8987868546
(vous avez ajouté un 6
à la fin)
8987868546
n'est pas 1 ( règle 1 respectée ) et 8987868546
est un entier positif supérieur à 1 ( règle 2 respectée ).