Визначте, чи є число досконалим, надлишковим або недостатнім, за схемою класифікації Нікомаха (60 - 120 рр. н. е.) для додатних цілих чисел.
Грецький математик Нікомах розробив схему класифікації додатних цілих чисел, за якою кожне з них належить рівно до однієї з категорій: досконале, надлишкове або недостатнє, залежно від суми власних дільників.
Суму власних дільників визначають як суму всіх дільників числа, крім самого числа.
Наприклад, сума власних дільників числа 15 дорівнює 1 + 3 + 5 = 9.
Число є досконалим, коли воно дорівнює сумі своїх власних дільників. Наприклад:
6 є досконалим числом, бо 1 + 2 + 3 = 6
28 є досконалим числом, бо 1 + 2 + 4 + 7 + 14 = 28
Число є надлишковим, коли воно менше за суму своїх власних дільників. Наприклад:
12 є надлишковим числом, бо 1 + 2 + 3 + 4 + 6 = 16
24 є надлишковим числом, бо 1 + 2 + 3 + 4 + 6 + 8 + 12 = 36
Число є недостатнім, коли воно більше за суму своїх власних дільників. Наприклад:
8 є недостатнім числом, бо 1 + 2 + 4 = 7
Реалізуйте спосіб визначати, чи є задане число досконалим. Залежно від мовного треку, можливо, також потрібно реалізувати спосіб визначати, чи є задане число надлишковим або недостатнім.
Іноді потрібно підняти виняток. Коли ми це робимо, варто завжди додавати змістовне повідомлення про помилку, щоб показати, у чому джерело помилки. Це робить код читабельнішим і значно допомагає з налагодженням. Якщо відомо, що джерело помилки має певний тип, можна підняти один із вбудованих типів помилок, але повідомлення все одно має бути змістовним.
У цій вправі потрібно використати інструкцію raise, щоб «кинути» ValueError, якщо у функцію classify() передано число, яке не є додатним цілим числом. Тести пройдуть, лише якщо підняти exception і додати до нього повідомлення.
Щоб підняти ValueError із повідомленням, запишіть повідомлення як аргумент до типу exception:
# if a number to be classified is less than 1.
raise ValueError("Classification is only possible for positive integers.")
Зареєструйтеся на Exercism, щоб вивчати й опановувати Python, а також 17 концепцій146 вправ та справжнє наставництво від людей, і все це безкоштовно.