Tutte le sfide
Facile 0 risolte 0% di accettazione

Classifica un Numero in base ai suoi Divisori

Classifica un intero positivo come perfetto, abbondante o deficiente.

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

Esempio 1
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.

Esempio 2
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.

Impara dagli altri

Soluzioni della community

Nessuna soluzione pubblicata. Risolvi questa sfida per condividere la prima.