Сложите все положительные делители числа n, которые строго меньше n. Если их сумма равна n, число считается совершенным. Если сумма больше n — избыточным; если меньше — недостаточным. У числа 1 нет собственных положительных делителей, поэтому сумма делителей равна 0.
Реализуйте функцию perfect_number(n).
Ввод
n: Положительное целое число для классификации.
Вывод
Верните perfect, abundant или deficient — в виде строки в нижнем регистре.
Ограничения
1 ≤ n ≤ 1 000 000. Нулевые и отрицательные значения не рассматриваются.
Примеры
Ввод:
n = 18
Ожидаемый вывод:
expected = "abundant"
Ввод:
long long n = 18;
Ожидаемый вывод:
std::string expected = "abundant";
Ввод:
long n = 18;
Ожидаемый вывод:
string expected = "abundant";
Пояснение
Собственные делители: 1, 2, 3, 6 и 9. Их сумма — 21, что больше 18.
Ввод:
n = 28
Ожидаемый вывод:
expected = "perfect"
Ввод:
long long n = 28;
Ожидаемый вывод:
std::string expected = "perfect";
Ввод:
long n = 28;
Ожидаемый вывод:
string expected = "perfect";
Пояснение
Сумма собственных делителей: 1 + 2 + 4 + 7 + 14 = 28, что в точности равно самому числу.
Ссылки
Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.