Все задачи
Легко Решено: 0 Процент решений: 0%

Классификация числа по его делителям

Классифицируйте положительное целое число как совершенное, избыточное или недостаточное.

Сложите все положительные делители числа n, которые строго меньше n. Если их сумма равна n, число считается совершенным. Если сумма больше n — избыточным; если меньше — недостаточным. У числа 1 нет собственных положительных делителей, поэтому сумма делителей равна 0.

Реализуйте функцию perfect_number(n).

Ввод

n: Положительное целое число для классификации.

Вывод

Верните perfect, abundant или deficient — в виде строки в нижнем регистре.

Ограничения

1 ≤ n ≤ 1 000 000. Нулевые и отрицательные значения не рассматриваются.

Примеры

Пример 1
Ввод:
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.

Пример 2
Ввод:
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. Следуйте условию и ограничениям выше.

Учитесь у других

Решения сообщества

Пока нет опубликованных решений. Решите задание, чтобы поделиться первым.