Problema
Ver original (inglés)Suma los divisores positivos de n que sean estrictamente menores que n. Si su suma es igual a n, el número es perfecto. Si la suma es mayor, es abundante; si es menor, es deficiente. El número 1 no tiene divisores positivos propios, así que la suma de sus divisores es 0.
Implementa perfect_number(n).
Entrada
n: El entero positivo a clasificar.
Salida
Devuelve perfect, abundant o deficient en minúsculas.
Restricciones
1 ≤ n ≤ 1,000,000. Se excluyen valores cero y negativos.
Ejemplos
Entrada:
n = 18
Salida esperada:
expected = "abundant"
Entrada:
long long n = 18;
Salida esperada:
std::string expected = "abundant";
Entrada:
long n = 18;
Salida esperada:
string expected = "abundant";
Explicación
Los divisores propios son 1, 2, 3, 6 y 9. Su suma es 21, mayor que 18.
Entrada:
n = 28
Salida esperada:
expected = "perfect"
Entrada:
long long n = 28;
Salida esperada:
std::string expected = "perfect";
Entrada:
long n = 28;
Salida esperada:
string expected = "perfect";
Explicación
La suma de los divisores propios es 1 + 2 + 4 + 7 + 14 = 28, exactamente el mismo número.
Referencias
Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.