Problema
Mostra originale (inglese)Somma i divisori positivi di n che sono strettamente minori di n. Se la loro somma è uguale a n, il numero è perfetto. Se la somma è maggiore, è abbondante; se è minore, è deficiente. Il numero 1 non ha divisori propri positivi, quindi la somma dei suoi divisori è 0.
Implementa perfect_number(n).
Input
n: L'intero positivo da classificare.
Output
Restituisci perfect, abundant o deficient come testo minuscolo.
Vincoli
1 ≤ n ≤ 1.000.000. Valori zero e negativi sono esclusi.
Esempi
Input:
n = 18
Output atteso:
expected = "abundant"
Input:
long long n = 18;
Output atteso:
std::string expected = "abundant";
Input:
long n = 18;
Output atteso:
string expected = "abundant";
Spiegazione
I divisori propri sono 1, 2, 3, 6 e 9. La loro somma è 21, maggiore di 18.
Input:
n = 28
Output atteso:
expected = "perfect"
Input:
long long n = 28;
Output atteso:
std::string expected = "perfect";
Input:
long n = 28;
Output atteso:
string expected = "perfect";
Spiegazione
La somma dei divisori propri è 1 + 2 + 4 + 7 + 14 = 28, esattamente il numero stesso.
Riferimenti
Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.