Это мой первый вызов!
Задний план
Совершенное число - это положительное целое число, равное сумме всех его делителей, кроме него самого.
Так 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ИМО.