Un número $n\in \mathbb{N}$ es perfecto si es la suma de todos sus divisores (excepto él mismo). Por ejemplo, el número 6 es perfecto pues la suma de sus divisores da como resultado
$$ 1+2+3=6 $$Otro ejemplo es el número 28 pues
$$ 1+2+4+7+14=28 $$Ahora bien, lo que realizaremos será una función que nos diga si un número es perfecto o no, para ello
divisores
) que contenga todos los divisores del número en cuestióndivisores
de modo que, si el resultado de ellos da el número en cuestión, entonces éste es un número perfecto.# comenzaremos trabajando con el número 6
x = 6
# creamos la lista de divisores
divisores = []
# agregamos elementos a divisores utilizando la operación de módulo(%)
for i in range(1,x - 1):
if x % i == 0:
divisores.append(i)
print(divisores)
[1, 2, 3]
# sumamos los elementos de dicha lista
sum(divisores)
6
# aplicamos un if para decidir si el número es perfecto o no
if sum(divisores) == x:
print("El número", x, "es un número perfecto")
else:
print("El número", x, "NO es un número perfecto")
El número 6 es un número perfecto
# Finalmente conjuntamos el código para crear nuestra función:
def numPerfecto(x):
# creamos la lista de divisores
divisores = []
# agregamos elementos a divisores utilizando la operación de módulo(%)
for i in range(1,x - 1):
if x % i == 0:
divisores.append(i)
# aplicamos un if para decidir si el número es perfecto o no
if sum(divisores) == x:
print("El número", x, "es un número perfecto")
else:
print("El número", x, "NO es un número perfecto")
# probamos nuestra función
numPerfecto(6)
numPerfecto(28)
numPerfecto(54)
numPerfecto(33550336)
El número 6 es un número perfecto El número 28 es un número perfecto El número 54 NO es un número perfecto El número 33550336 es un número perfecto