Proyecto para encontrar números perfectos

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

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_number para encontrar todos los números perfectos en un rango dado
  • Cómo probar la función perfect_number y verificar la corrección de los resultados
  • Cómo optimizar y mejorar la función perfect_number para 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

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python/BasicConceptsGroup -.-> python/python_shell("Python Shell") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/DataStructuresGroup -.-> python/lists("Lists") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/arguments_return("Arguments and Return Values") subgraph Lab Skills python/python_shell -.-> lab-302754{{"Proyecto para encontrar números perfectos"}} python/conditional_statements -.-> lab-302754{{"Proyecto para encontrar números perfectos"}} python/for_loops -.-> lab-302754{{"Proyecto para encontrar números perfectos"}} python/lists -.-> lab-302754{{"Proyecto para encontrar números perfectos"}} python/function_definition -.-> lab-302754{{"Proyecto para encontrar números perfectos"}} python/arguments_return -.-> lab-302754{{"Proyecto para encontrar números perfectos"}} end

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:

  1. Completar la función perfect_number en perfect_number.py para encontrar todos los números perfectos en el rango de 1 a 1000.
  2. 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:

  1. La función perfect_number se define para encontrar todos los números perfectos en el rango de 1 a 1000.
  2. Se inicializa una lista vacía result para almacenar los números perfectos.
  3. La función itera a través de los números del 1 al 1000 (inclusive).
  4. Para cada número, la función encuentra sus factores (excluyendo el número mismo) y los agrega a la lista factors.
  5. 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.
  6. Finalmente, la función devuelve la lista result que 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.

✨ Revisar Solución y Practicar

Resumen

¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.