Las matemáticas y la programación van de la mano: los números están en todas partes en la programación. Ya sea que estés verificando si un número es primo, generando secuencias de Fibonacci o detectando un palíndromo, estos pequeños desafíos agudizan tanto tus habilidades matemáticas como tu lógica de codificación. 

En este artículo, exploraremos 20 ejercicios de programación amigables para principiantes basados en números. Para cada uno, obtendrás una breve explicación del concepto matemático, algunas entradas y salidas de muestra, y una solución en Python lista para ejecutar. Es una forma divertida de practicar la codificación mientras aprendes cómo ideas matemáticas como los cuadrados perfectos, los cubos y los números triangulares pueden cobrar vida en el código.

1. Suma de los Primeros N Números Naturales

Lo que quiere el ejercicio:

Escribe un programa para encontrar la suma de los primeros n números naturales. Esto te ayuda a practicar bucles o fórmulas matemáticas.

¿Qué es un número natural?

Los números naturales son los números de conteo que comienzan desde 1: 1, 2, 3, 4, …

Entrada de Muestra

5

Salida de Muestra

15

Solución en Python

# Leer n y calcular la suma de los primeros n números naturales usando la fórmula de forma cerrada
n = int(input("Ingresa n: "))
# Usando aritmética entera (//) para evitar flotantes
total = n * (n + 1) // 2
print(total)

2. Verificador de Números Pares o Impares

Lo que quiere el ejercicio:

Toma una entrada entera e imprime si es par o impar.

¿Qué es par/impar?

Los números pares son divisibles por 2 (por ejemplo, 2, 4, 6). Los números impares dejan un residuo de 1 cuando se dividen por 2 (por ejemplo, 1, 3, 5).

Entrada de Muestra

7

Salida de Muestra

7 es impar

Solución en Python

# Determinar si el número entero de entrada es par o impar usando módulo
n = int(input("Ingresa un número: "))
if n % 2 == 0:
    print(f"{n} es par")
else:
    print(f"{n} es impar")

3. Verificador de Números Primos

Lo que quiere el ejercicio:

Escribe un programa para verificar si un número dado es primo.

¿Qué es un número primo?

Un número primo es mayor que 1 y divisible solo por 1 y por sí mismo (por ejemplo, 2, 3, 5, 7).

Entrada de Muestra

13

Salida de Muestra

13 es primo

Solución en Python

# Verificar la primalidad intentando la división hasta sqrt(n)
n = int(input("Ingresa un número: "))
if n < 2:
    print(f"{n} no es primo")
else:
    for d in range(2, int(n**0.5) + 1):
        if n % d == 0:
            print(f"{n} no es primo")
            break
    else:
        print(f"{n} es primo")

4. Suma de Dígitos

Lo que quiere el ejercicio:

Encuentra la suma de todos los dígitos de un número.

¿Por qué importan las sumas de dígitos?

Las sumas de dígitos aparecen en reglas de divisibilidad y varios acertijos numéricos (por ejemplo, divisible por 3 si la suma de los dígitos es divisible por 3).

Entrada de Muestra

1234

Salida de Muestra

10

Solución en Python

# Sumar los dígitos iterando sobre los caracteres y convirtiéndolos a enteros
s = input("Ingresa un número: ").strip()
digit_sum = sum(int(ch) for ch in s if ch.isdigit())
print(digit_sum)

5. Verificador de Números Palindrómicos

Lo que quiere el ejercicio:

Verifica si un número se lee igual hacia adelante y hacia atrás.

¿Qué es un número palindrómico?

Un número como 121, 1331 o 12321 que permanece igual cuando se invierte.

Entrada de Muestra

12321

Salida de Muestra

12321 es un palíndromo

Solución en Python

# Comparar la cadena con su reverso para probar si es un palíndromo
s = input("Ingresa un número: ").strip()
print(f"{s} es un palíndromo" if s == s[::-1] else f"{s} no es un palíndromo")

6. Encontrar Todos los Factores de un Número

Lo que quiere el ejercicio:

Lista todos los números que dividen n de manera exacta.

¿Qué son los factores?

Los factores son enteros que puedes multiplicar para obtener n. Para 12, los factores son 1, 2, 3, 4, 6, 12.

Entrada de Muestra

12

Salida de Muestra

1 2 3 4 6 12

Solución en Python

# Generar todos los divisores probando desde 1..n
n = int(input("Ingresa un número: "))
factors = [d for d in range(1, n+1) if n % d == 0]
print(" ".join(map(str, factors)))

7. Verificador de Números Perfectos

Lo que quiere el ejercicio:

Verifica si n es igual a la suma de sus divisores propios (excluyéndose a sí mismo).

¿Qué es un número perfecto?

Números como 6 (=1+2+3) y 28 (=1+2+4+7+14) son números perfectos.

Entrada de Muestra

28

Salida de Muestra

28 es un número perfecto

Solución en Python

# Sumar divisores propios (excluir n) y comparar con n
n = int(input("Ingresa un número: "))
proper = [d for d in range(1, n) if n % d == 0]
print(f"{n} es un número perfecto" si sum(proper) == n else f"{n} no es un número perfecto")

8. Verificador de Números Armstrong (Narcisistas)

Lo que quiere el ejercicio:

Verifica si n es igual a la suma de sus dígitos elevados a la potencia del número de dígitos.

¿Qué es un número Armstrong?

Ejemplo: 153 = 1³ + 5³ + 3³; 9474 = 9⁴ + 4⁴ + 7⁴ + 4⁴.

Entrada de Muestra

153

Salida de Muestra

153 es un número Armstrong

Solución en Python

# Elevar cada dígito a la potencia del total de dígitos y sumar
s = input("Ingresa un número: ").strip()
p = len(s)
arm = sum(int(ch)**p for ch in s)
print(f"{s} es un número Armstrong" si arm == int(s) else f"{s} no es un número Armstrong")

9. Verificador de Cuadrados Perfectos

Lo que quiere el ejercicio:

Verifica si un número es un cuadrado perfecto.

¿Qué es un cuadrado perfecto?

Un número que puede escribirse como k² (por ejemplo, 4, 9, 16, 25).

Entrada de Muestra

49

Salida de Muestra

49 es un cuadrado perfecto

Solución en Python

# Usar la raíz cuadrada entera para evitar problemas de punto flotante
import math
n = int(input("Ingresa un número: "))
print(f"{n} es un cuadrado perfecto" si math.isqrt(n)**2 == n else f"{n} no es un cuadrado perfecto")

10. Verificador de Cubos Perfectos

Lo que quiere el ejercicio:

Verifica si un número es un cubo perfecto.

¿Qué es un cubo perfecto?

Un número que puede expresarse como k³ (por ejemplo, 8, 27, 64).

Entrada de Muestra

27

Salida de Muestra

27 es un cubo perfecto

Solución en Python

# Aproximar la raíz cúbica redondeando y verificar volviendo a elevar al cubo
n = int(input("Ingresa un número: "))
croot = round(n ** (1/3))
print(f"{n} es un cubo perfecto" si croot**3 == n else f"{n} no es un cubo perfecto")

11. Generador de Secuencia de Fibonacci

Lo que quiere el ejercicio:

Genera los primeros n números de Fibonacci.

¿Qué es un número de Fibonacci?

Secuencia que comienza en 0, 1 donde cada nuevo término es la suma de los dos anteriores: 0, 1, 1, 2, 3, 5, 8, …

Entrada de Muestra

7

Salida de Muestra

0 1 1 2 3 5 8

Solución en Python

# Construir iterativamente la secuencia de Fibonacci usando dos rastreadores
n = int(input("Ingresa n: "))
a, b = 0, 1
seq = []
for _ in range(n):
    seq.append(a)
    a, b = b, a + b
print(" ".join(map(str, seq)))

12. Verificar si un Número está en la Secuencia de Fibonacci

Lo que quiere el ejercicio:

Verifica si un número dado pertenece a la secuencia de Fibonacci.

Hecho matemático:

n es Fibonacci si y solo si (5n² + 4) o (5n² − 4) es un cuadrado perfecto.

Entrada de Muestra

21

Salida de Muestra

21 es un número de Fibonacci

Solución en Python

# Usar la prueba de cuadrado perfecto 5n^2±4 para verificar la pertenencia a Fibonacci
import math

def is_square(x: int) -> bool:
    return math.isqrt(x)**2 == x

n = int(input("Ingresa un número: "))
if is_square(5*n*n + 4) or is_square(5*n*n - 4):
    print(f"{n} es un número de Fibonacci")
else:
    print(f"{n} no es un número de Fibonacci")

13. Verificador de Números Triangulares

Lo que quiere el ejercicio:

Verifica si n es triangular: n = k(k+1)/2 para algún entero k.

¿Qué es un número triangular?

Forman triángulos de puntos: 1, 3, 6, 10, 15, …

Entrada de Muestra

15

Salida de Muestra

15 es un número triangular

Solución en Python

# Resolver k(k+1)/2 = n comprobando k = floor((sqrt(8n+1)-1)/2)
import math
n = int(input("Ingresa un número: "))
k = int((math.isqrt(8*n + 1) - 1) // 2)
print(f"{n} es un número triangular" si k * (k + 1) // 2 == n else f"{n} no es un número triangular")

14. Número Racional (Decimal → Fracción)

Lo que quiere el ejercicio:

Convierte un decimal a una fracción simplificada p/q.

¿Qué es un número racional?

Un número expresable como una relación de enteros (por ejemplo, 0.75 = 3/4).

Entrada de Muestra

0.75

Salida de Muestra

3/4

Solución en Python

# Usar Fraction para convertir decimal a forma p/q y simplificar
from fractions import Fraction
x = float(input("Ingresa un decimal: "))
print(Fraction(x).limit_denominator())

15. Verificador de Números Triangulares

Lo que quiere el ejercicio:

Verifica si un número es triangular, lo que significa que puede formar un triángulo equilátero.

¿Qué es un número triangular?

Los números triangulares son sumas de los primeros n números naturales: 1, 3, 6, 10, 15…

Entrada de Muestra

10

Salida de Muestra

10 es un número triangular

Solución en Python

import math

n = int(input("Ingresa un número: "))
# Fórmula: si 8n+1 es un cuadrado perfecto, entonces n es triangular
check = 8 * n + 1
if int(math.isqrt(check))**2 == check:
    print(f"{n} es un número triangular")
else:
    print(f"{n} no es un número triangular")

16. Generador de Secuencia de Fibonacci

Lo que quiere el ejercicio:

Genera la secuencia de Fibonacci hasta n términos.

¿Qué es la secuencia de Fibonacci?

Es una secuencia donde cada número es la suma de los dos anteriores: 0, 1, 1, 2, 3, 5, 8…

Entrada de Muestra

7

Salida de Muestra

0 1 1 2 3 5 8

Solución en Python

n = int(input("Ingresa el número de términos: "))
a, b = 0, 1
for _ in range(n):
    print(a, end=" ")
    a, b = b, a + b

17. Suma de Dígitos

Lo que quiere el ejercicio:

Calcula la suma de todos los dígitos en un número dado.

¿Qué significa?

Ejemplo: los dígitos de 1234 son 1+2+3+4 = 10.

Entrada de Muestra

1234

Salida de Muestra

10

Solución en Python

n = input("Ingresa un número: ")
# Convertir cada carácter de nuevo a int y sumar
s = sum(int(d) for d in n)
print(s)

18. Invertir un Número

Lo que quiere el ejercicio:

Invierte los dígitos del número dado.

¿Qué significa?

Ejemplo: 12345 se convierte en 54321.

Entrada de Muestra

12345

Salida de Muestra

54321

Solución en Python

n = input("Ingresa un número: ")
# Usar slicing para invertir
print(n[::-1])

19. Máximo Común Divisor (MCD)

Lo que quiere el ejercicio:

Encuentra el mayor número que divide a dos enteros sin dejar residuo.

¿Qué es el MCD?

El mayor divisor común a ambos números. Ejemplo: mcd(12, 18) = 6.

Entrada de Muestra

12 18

Salida de Muestra

6

Solución en Python

import math

a, b = map(int, input("Ingresa dos números: ").split())
# Usar math.gcd para eficiencia
print(math.gcd(a, b))

20. Mínimo Común Múltiplo (MCM)

Lo que quiere el ejercicio:

Encuentra el número más pequeño que es divisible por ambos enteros dados.

¿Qué es el MCM?

El mínimo común múltiplo de dos números. Ejemplo: mcm(4, 6) = 12.

Entrada de Muestra

4 6

Salida de Muestra

12

Solución en Python

import math

a, b = map(int, input("Ingresa dos números: ").split())
# Fórmula: mcm(a, b) = abs(a*b) // mcd(a, b)
print(abs(a*b) // math.gcd(a, b))