Menu
CoddyTech

Perfect Number

Un divisor propio de n es un divisor positivo menor que n. Un número perfecto es igual a la suma de sus divisores propios: 6 = 1 + 2 + 3. Recibes un entero positivo n. Devuelve true si n es perfecto y false en caso contrario.

Función

isPerfect(n: integer) → boolean
ninteger
el entero positivo que se va a comprobar
Devuelveboolean
verdadero si n es igual a la suma de sus divisores propios, falso en caso contrario

Restricciones

  • 1 ≤ n ≤ 108

Ejemplos

Entrada
n = 28
Salida
true
Explicación
Los divisores propios de 28 son 1, 2, 4, 7 y 14. Suman 28, así que 28 es perfecto.

lock icon+16 pruebas ocultas al enviar

challenge icon

Para ir más allá

Todo número perfecto par tiene la forma 2^(p-1) × (2^p-1), donde 2^p-1 es primo. ¿Puedes enumerar todos los números perfectos menores que 10^8 usando esa fórmula, sin probar cada número?

Restablecer código
def isPerfect(n):
    # Escribe el código aquí
Casos de prueba

Caso 1

Caso 2

Caso 3

Entrada

n = 28

Esperado

true