Ejercicios de Python para principiantes

Check a Perfect Number in Python

28 = 1 + 2 + 4 + 7 + 14. Find all proper divisors and check whether they add up to the number.

  • Principiante
  • 2 min de lectura
  • 1 ejemplo ejecutable
Lo que aprenderás
  • Proper divisors
  • Summing divisors with a comprehension
  • Faster checks up to √n
Divisors of 28
1
2
4
7
14
= 28
1 + 2 + 4 + 7 + 14 = 28, so 28 is a perfect number.

Add the divisors except the number itself

Un número perfecto es igual a la suma de sus divisores positivos, sin contarse a sí mismo. Por ejemplo, los divisores de 28 son 1, 2, 4, 7 y 14, y 1 + 2 + 4 + 7 + 14 = 28, así que 28 es un número perfecto.

Puntos clave

  1. Proper divisors are those smaller than n that divide it exactly.
  2. sum(d for d in range(1, n) if n % d == 0) adds them.
  3. If the sum equals n, it is perfect: 6, 28, 496, 8128.

¿Cuándo se usa?

  • Aprender la sintaxis y los conceptos básicos de Python con ejemplos cortos y fáciles de entender.
  • Construir una base sólida antes de pasar a problemas más complejos.
  • Ejecutar el código directamente en el navegador, sin instalar Python en el ordenador.

Código de ejemplo

Ejecutar código →
main.py
number = 28
# Proper divisors cannot be larger than half the number.
divisors = [value for value in range(1, number // 2 + 1) if number % value == 0]
result = "is" if sum(divisors) == number else "is not"
print(f"{number} {result} a perfect number")
Obtén un botón Run para este ejemplo

Resultado de la ejecución

28 is a perfect number

Explicación del código

La comprensión de listas recorre los números de 1 a number // 2 y conserva los que dividen a number. Basta con llegar hasta la mitad de number, porque ningún divisor propio es mayor que esa mitad. Si la suma de los divisores es igual a number, el programa muestra 28 is a perfect number.

Cambia los valores y ejecuta el programa en el compilador Python online de CodeUtility sin instalar Python.

Ejercicios de práctica

Prueba a modificar el código siguiendo las ideas de abajo. Cambiar el código y ver el resultado te ayudará a entender la lección mucho mejor que solo leerla.

  1. Cambia los datos de entrada y predice el resultado antes de ejecutar.
  2. Añade una comprobación para datos vacíos o no válidos.
  3. Pasa el proceso a una función aparte y pruébala con varios conjuntos de datos.
Ejecutar en el compilador de Python →

Practica con un reto

Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.

Todos los retos