Determina si un número es perfecto, abundante o deficiente según el esquema de clasificación de Nicómaco (60 - 120 de la era común) para los enteros positivos.
El matemático griego Nicómaco ideó un esquema de clasificación para los enteros positivos, que identifica cada uno como perteneciente de manera única a las categorías de perfecto, abundante o deficiente según su suma alícuota.
La suma alícuota se define como la suma de los factores de un número, sin incluir el número mismo.
Por ejemplo, la suma alícuota de 15 es 1 + 3 + 5 = 9.
Un número es perfecto cuando es igual a su suma alícuota. Por ejemplo:
6 es un número perfecto porque 1 + 2 + 3 = 6
28 es un número perfecto porque 1 + 2 + 4 + 7 + 14 = 28
Un número es abundante cuando es menor que su suma alícuota. Por ejemplo:
12 es un número abundante porque 1 + 2 + 3 + 4 + 6 = 16
24 es un número abundante porque 1 + 2 + 3 + 4 + 6 + 8 + 12 = 36
Un número es deficiente cuando es mayor que su suma alícuota. Por ejemplo:
8 es un número deficiente porque 1 + 2 + 4 = 7
Implementa una forma de determinar si un número dado es perfecto. Según el track de tu lenguaje, es posible que también tengas que implementar una forma de determinar si un número dado es abundante o deficiente.
Para este ejercicio, digamos que queremos que quien llama sea responsable de llamar a classify solo con una entrada distinta de cero.
Así que haz que la función classify use un assert para comprobar que su entrada no sea cero.
Para más detalles, consulta la referencia del lenguaje Zig y la implementación de std.debug.assert.
Sin embargo, ten en cuenta que este ejercicio actualmente no prueba una entrada de 0 (porque std.testing todavía no admite esperar un panic).
Regístrate en Exercism para aprender y dominar Zig con 104 ejercicios y mentoría humana real, todo gratis.