Introducción
En este proyecto, aprenderás a encontrar todos los números perfectos en el rango de 1 a 1000. Los números perfectos son enteros positivos que son iguales a la suma de sus divisores propios, excluyendo el número mismo.
👀 Vista previa
## si el rango es de 1 a 10, la salida debe ser:
Números perfectos: 6 ## 6 = 1 + 2 + 3
🎯 Tareas
En este proyecto, aprenderás:
- Cómo implementar la función
perfect_numberpara encontrar todos los números perfectos en un rango dado - Cómo probar la función
perfect_numbery verificar la corrección de los resultados - Cómo optimizar y mejorar la función
perfect_numberpara obtener un mejor rendimiento y legibilidad
🏆 Logros
Después de completar este proyecto, podrás:
- Comprender el concepto de números perfectos y sus propiedades matemáticas
- Escribir una función para encontrar todos los números perfectos en un rango especificado
- Probar y depurar tu código para asegurarte de que funcione correctamente
- Optimizar tu código para una mayor eficiencia y legibilidad
- Aplicar tus habilidades para resolver problemas para mejorar tus habilidades de programación
Comprender el problema
En este paso, aprenderás sobre el concepto de números perfectos y los requisitos del proyecto.
Los números perfectos son enteros positivos que son iguales a la suma de sus divisores propios, excluyendo el número mismo. Por ejemplo, los factores de 6 son 1, 2 y 3. Dado que 6 = 1 + 2 + 3, 6 es un número perfecto.
El objetivo de este proyecto es:
- Completar la función
perfect_numberenperfect_number.pypara encontrar todos los números perfectos en el rango de 1 a 1000. - Imprimir todos los números perfectos encontrados, separados por un espacio.
Implementar la función perfect_number
Abra el archivo perfect_number.py y localice la función perfect_number. Esta función se encarga de encontrar todos los números perfectos en el rango de 1 a 1000.
A continuación, se muestra el código inicial proporcionado:
def perfect_number():
"""
Encuentra todos los números perfectos en el rango de 1 a 1000.
Devuelve:
list: Una lista de números perfectos encontrados en el rango de 1 a 1000.
"""
result = []
for num in range(1, 1001):
factors = []
for i in range(1, num):
if num % i == 0:
factors.append(i)
if sum(factors) == num:
result.append(num)
return result
Analicemos el código paso a paso:
- La función
perfect_numberse define para encontrar todos los números perfectos en el rango de 1 a 1000. - Se inicializa una lista vacía
resultpara almacenar los números perfectos. - La función itera a través de los números del 1 al 1000 (inclusive).
- Para cada número, la función encuentra sus factores (excluyendo el número mismo) y los agrega a la lista
factors. - Si la suma de los factores es igual al número, el número se considera un número perfecto y se agrega a la lista
result. - Finalmente, la función devuelve la lista
resultque contiene todos los números perfectos encontrados.
Probar la función perfect_number
Para probar la función perfect_number, agregue el siguiente código al final del archivo perfect_number.py:
if __name__ == "__main__":
result = perfect_number()
print("Números perfectos:", " ".join(map(str, result)))
Este código llamará a la función perfect_number e imprimirá todos los números perfectos encontrados, separados por un espacio.
Guarde el archivo perfect_number.py y ejecute el script:
python perfect_number.py
La salida debe ser:
Números perfectos: 6 28 496
Esto significa que la función perfect_number está funcionando correctamente y ha encontrado los números perfectos en el rango de 1 a 1000.
Resumen
¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.



