Saltar al contenido principal

¿Es Número Primo?

Determina si un número entero es primo. Un clásico para dominar bucles, el operador módulo y la optimización de algoritmos simples.

for loop range() operador módulo % return bool

El problema

Escribe una función es_primo(n) que devuelva True si n es un número primo y False en caso contrario.

Un número primo es aquel que solo es divisible por 1 y por sí mismo, y debe ser mayor que 1.

Ejemplos

nresultadopor qué
2TrueEl primo más pequeño
7TrueSolo divisible por 1 y 7
9False9 = 3 × 3
1FalsePor definición, 1 no es primo
0FalsePor definición, 0 no es primo

Código inicial

def es_primo(n):
    # Tu código aquí
    pass


# Prueba tu función
print(es_primo(2))   # True
print(es_primo(7))   # True
print(es_primo(9))   # False
print(es_primo(1))   # False

Concepto clave: divisibilidad

Un número n es primo si ningún número entre 2 y n-1 lo divide exactamente. Puedes comprobarlo con %:

9 % 3 == 0  # True → 9 es divisible por 3 → NO es primo
7 % 3 == 0  # False
7 % 2 == 0  # False
# Si ningún número divide a 7, es primo

Variante avanzada: listar primos hasta N

def primos_hasta(n):
    return [i for i in range(2, n + 1) if es_primo(i)]


print(primos_hasta(30))
# [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

Próximos pasos

  • Implementa la Criba de Eratóstenes para generar todos los primos hasta N de forma más eficiente
  • Escribe una función factores_primos(n) que devuelva la descomposición en factores primos