Це мій перший виклик!
Фон
Ідеальне число - це додатне ціле число, яке дорівнює сумі всіх його дільників, крім самого себе.
Так 6це досконале число, так як 1 + 2 + 3 = 6.
З іншого боку 12- ні, тому що 1 + 2 + 3 + 4 + 6 = 16 != 12.
Завдання
Ваше завдання просте: написати програму, яка дасть змогу nнадрукувати одне з цих повідомлень:
Я ідеальне число, тому що
d1 + d2 + ... + dm = s == n
я не ідеальне число, тому щоd1 + d2 + ... + dm = s [<>] n
Де
d1, ... dmвсе подільники , nза винятком n.
s- це сума всіх дільників d1, ..., dm(знову ж таки, без n).
[<>]є або <(якщо s < n), або >(якщо s > n).
Приклади
Для nтого, щоб бути 6: "Я ідеальне число, тому що 1 + 2 + 3 = 6 == 6"
Для nтого, щоб бути 12: "Я не є ідеальним числом, тому що 1 + 2 + 3 + 4 + 6 = 16> 12"
Для nтого, щоб бути 13: "Я не ідеальне число, тому що 1 = 1 <13"
Правила
nне перевищує стандарт вашої мовиint.- Ви можете читати
nзі стандартного вводу, з аргументів командного рядка або з файлу. - Вихідне повідомлення має бути надруковано на стандартному виході, і жодні додаткові символи не можуть з’являтися у висновку (у ньому може бути пробіл пробілу чи новий рядок)
- Ви не можете використовувати будь-які вбудовані або бібліотечні функції, які вирішили б завдання (або його основну частину) для вас. Ні,
GetDivisors()чи щось подібне. - Застосовуються всі інші стандартні лазівки .
Переможець
Це код-гольф, тому найкоротший код у байтах виграє!
=і ==в тому ж рівнянні? В цьому немає сенсу. Це має бути d1 + d2 + ... + dm = s = nІМО.