حدّد ما إذا كان العدد perfect أو abundant أو deficient، بناءً على مخطط التصنيف الذي وضعه نيقوماخوس (60 - 120 م) للأعداد الصحيحة الموجبة.
وضع عالم الرياضيات الإغريقي نيقوماخوس مخططًا لتصنيف الأعداد الصحيحة الموجبة، يحدّد فيه انتماء كل عدد انتماءً وحيدًا إلى إحدى فئات perfect أو abundant أو deficient، وذلك استنادًا إلى مجموع القواسم الفعلية.
ويُعرَّف مجموع القواسم الفعلية بأنه مجموع قواسم العدد، دون احتساب العدد نفسه.
على سبيل المثال، مجموع القواسم الفعلية للعدد 15 هو 1 + 3 + 5 = 9.
العدد perfect هو الذي يساوي مجموع قواسمه الفعلية. على سبيل المثال:
6 عدد perfect لأن 1 + 2 + 3 = 6
28 عدد perfect لأن 1 + 2 + 4 + 7 + 14 = 28
العدد abundant هو الذي يقل عن مجموع قواسمه الفعلية. على سبيل المثال:
12 عدد abundant لأن 1 + 2 + 3 + 4 + 6 = 16
24 عدد abundant لأن 1 + 2 + 3 + 4 + 6 + 8 + 12 = 36
العدد deficient هو الذي يزيد عن مجموع قواسمه الفعلية. على سبيل المثال:
8 عدد deficient لأن 1 + 2 + 4 = 7
نفّذ أسلوبًا لتحديد ما إذا كان العدد المعطى perfect. وقد تحتاج أيضًا، حسب مسار اللغة الذي تتبعه، إلى تنفيذ أسلوب لتحديد ما إذا كان العدد المعطى abundant أو deficient.
في هذا التمرين، لنفترض أننا نريد أن يكون المستدعي مسؤولًا عن استدعاء classify بمدخل غير صفري فقط.
لذا اجعل دالة classify تؤكّد أن مدخلها غير صفري.
لمزيد من التفاصيل، راجع مرجع لغة Zig وتنفيذ std.debug.assert.
لكن لاحظ أن هذا التمرين لا يختبر حاليًا مدخلًا يساوي 0 (لأن std.testing لا يدعم بعد توقّع حدوث panic).
سجّل في Exercism لتتعلّم وتتقن Zig عبر 104 تمارين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.