Código del ejercicio:
Definición de los códigos del ejercicio:
for --> el bucle for se utiliza para recorrer los elementos de un objeto iterable (lista, tupla, conjunto, diccionario, …) y ejecutar un bloque de código.in --> el operador in devuelve True si el valor se encuentra en una secuencia; False en caso contrario.
range --> es un tipo que se utiliza para representar una secuencia inmutable de números. Uno de sus principales usos es junto a la sentencia for, para definir un bucle sobre el que se itera un número determinado de veces.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
// --> también conocido como operador de división de piso, es un operador de división que proporciona un número entero como salida y descarta el resto.
% --> el operador de modulo ( % ) devuelve el resto de la división.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
print() --> imprime un mensaje en la pantalla.
str() --> convierte el valor especificado en una cadena.
+ --> el operador ( + ) concatena variables de cadena.
Explicación del Código:
¿Qué hace este programa?
Este programa busca todos los números perfectos entre 2 y 9000. Un número perfecto es aquel cuya suma de todos sus divisores positivos, excepto él mismo, es igual al propio número.
Los números perfectos encontrados son:
- 6
- 28
- 496
- 8128
Código
for i in range(2,9000):
b = 0
for j in range(1, (i // 2) + 1):
if((i % j) == 0):
b = b + j
if(b == i):
print("El numero " + str(i) + " es perfecto")
Explicación de cada parte del código
-
for i in range(2,9000):
Recorre todos los números desde 2 hasta 8999. Cada número será analizado para saber si es perfecto. -
b = 0
Inicializa la variable b en cero. Esta variable almacenará la suma de los divisores del número. -
for j in range(1, (i // 2) + 1):
Recorre todos los posibles divisores del número i, desde 1 hasta la mitad del número, ya que ningún divisor propio puede ser mayor que su mitad. -
if((i % j) == 0):
Comprueba si j divide exactamente al número i. Si el residuo es cero, significa que es un divisor. -
b = b + j
Si j es divisor, se suma a la variable b. -
if(b == i):
Cuando termina de sumar todos los divisores, compara si la suma es igual al número original. -
print("El numero " + str(i) + " es perfecto")
Si la suma de los divisores es igual al número, se muestra el mensaje indicando que es un número perfecto.
¿Cómo funciona el programa?
- Toma un número entre 2 y 9000.
- Busca todos sus divisores.
- Suma esos divisores.
- Compara la suma con el número.
- Si ambos son iguales, imprime que es un número perfecto.
- Repite el proceso con el siguiente número.
Ejemplo con el número 28
Divisores de 28 (sin contar el 28):
Como la suma de sus divisores es igual al número, el programa indica:
El programa recorre todos los números entre 2 y 9000, encuentra sus divisores, los suma y verifica si esa suma es igual al número. Si se cumple esta condición, el número es perfecto y se imprime en pantalla. Gracias a este proceso, el programa obtiene los números perfectos: 6, 28, 496 y 8128.