Problema
Ver original (inglês)Some os divisores positivos de n que são estritamente menores que n. Se essa soma for igual a n, o número é perfeito. Se a soma for maior, ele é abundante; se for menor, é deficiente. O número 1 não possui divisores positivos próprios, então a soma dos seus divisores é 0.
Implemente perfect_number(n).
Entrada
n: O inteiro positivo a ser classificado.
Saída
Retorne perfect, abundant ou deficient como texto em letras minúsculas.
Restrições
1 ≤ n ≤ 1.000.000. Valores zero e negativos estão excluídos.
Exemplos
Entrada:
n = 18
Saída esperada:
expected = "abundant"
Entrada:
long long n = 18;
Saída esperada:
std::string expected = "abundant";
Entrada:
long n = 18;
Saída esperada:
string expected = "abundant";
Explicação
Os divisores próprios são 1, 2, 3, 6 e 9. A soma deles é 21, maior que 18.
Entrada:
n = 28
Saída esperada:
expected = "perfect"
Entrada:
long long n = 28;
Saída esperada:
std::string expected = "perfect";
Entrada:
long n = 28;
Saída esperada:
string expected = "perfect";
Explicação
A soma dos divisores próprios é 1 + 2 + 4 + 7 + 14 = 28, exatamente o próprio número.
Referências
Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.