Menu
CoddyTech

Perfect Number

Un divisore proprio di n è un divisore positivo minore di n stesso. Un numero perfetto è uguale alla somma dei suoi divisori propri: 6 = 1 + 2 + 3. Ti viene dato un intero positivo n. Restituisci true se n è perfetto e false altrimenti.

Funzione

isPerfect(n: integer) → boolean
ninteger
l'intero positivo da verificare
Restituisceboolean
vero se n è uguale alla somma dei suoi divisori propri, falso altrimenti

Vincoli

  • 1 ≤ n ≤ 108

Esempi

Input
n = 28
Output
true
Spiegazione
I divisori propri di 28 sono 1, 2, 4, 7 e 14. La loro somma è 28, quindi 28 è perfetto.

lock icon+16 test nascosti all’invio

challenge icon

Per approfondire

Ogni numero perfetto pari ha la forma 2^(p-1) × (2^p-1), dove 2^p-1 è primo. Riesci a elencare tutti i numeri perfetti minori di 10^8 usando questa formula, senza verificare ogni numero?

Ripristina il codice
def isPerfect(n):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Caso 3

Input

n = 28

Atteso

true