Parcours
/
Zig
Zig
/
Exercices
/
Nombres parfaits
Nombres parfaits

Nombres parfaits

Facile

Instructions

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.

Parfait

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

Abondant

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

Déficient

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
  • Les nombres premiers sont déficients.

Tâche

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.

Assert

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).

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Zig Exercism

Prêt à commencer Nombres parfaits ?

Inscris-toi sur Exercism pour apprendre et maîtriser Zig avec 104 exercices, et un vrai mentorat humain, le tout gratuitement.