Détermine si un nombre est parfait, abondant ou déficient, d'après le système de classification des entiers positifs établi par Nicomaque (60 - 120 apr. J.-C.).
Le mathématicien grec Nicomaque a conçu un système de classification des entiers positifs qui range chacun d'eux dans une seule catégorie : parfait, abondant ou déficient, selon sa somme aliquote.
La somme aliquote se définit comme la somme des diviseurs d'un nombre, sans compter le nombre lui-même.
Par exemple, la somme aliquote de 15 est 1 + 3 + 5 = 9.
Un nombre est parfait lorsqu'il est égal à sa somme aliquote. Par exemple :
6 est un nombre parfait car 1 + 2 + 3 = 6
28 est un nombre parfait car 1 + 2 + 4 + 7 + 14 = 28
Un nombre est abondant lorsqu'il est inférieur à sa somme aliquote. Par exemple :
12 est un nombre abondant car 1 + 2 + 3 + 4 + 6 = 16
24 est un nombre abondant car 1 + 2 + 3 + 4 + 6 + 8 + 12 = 36
Un nombre est déficient lorsqu'il est supérieur à sa somme aliquote. Par exemple :
8 est un nombre déficient car 1 + 2 + 4 = 7
Implémente un moyen de déterminer si un nombre donné est parfait. Selon le langage de ton parcours, tu devras peut-être aussi implémenter un moyen de déterminer si un nombre donné est abondant ou déficient.
Pour cet exercice, disons que l'on souhaite que ce soit à l'appelant de n'appeler classify qu'avec une entrée non nulle.
Fais donc en sorte que la fonction classify utilise assert pour vérifier que son entrée est non nulle.
Pour plus de détails, consulte la référence du langage Zig et l'implémentation de std.debug.assert.
Note cependant que cet exercice ne teste actuellement pas d'entrée valant 0 (car std.testing ne permet pas encore de s'attendre à une panique).
Inscris-toi sur Exercism pour apprendre et maîtriser Zig avec 104 exercices, et un vrai mentorat humain, le tout gratuitement.