¿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
| n | resultado | por qué |
|---|---|---|
2 | True | El primo más pequeño |
7 | True | Solo divisible por 1 y 7 |
9 | False | 9 = 3 × 3 |
1 | False | Por definición, 1 no es primo |
0 | False | Por 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