Cómo Comprobar si un Número es Primo en Python
La forma más rápida de comprobar si un número es primo en Python es dividir solo hasta su raíz cuadrada:
import math
def es_primo(n):
if n < 2:
return False
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True
¿Cuándo necesitas esto?
Un número primo solo es divisible por 1 y por sí mismo. Comprobar primos es un ejercicio clásico en Python y una pregunta habitual en entrevistas técnicas. También lo encontrarás en criptografía, generación de números aleatorios y ejercicios de matemáticas. En esta guía aprenderás cómo comprobar si un número es primo en Python, desde un bucle simple hasta un algoritmo optimizado.
Método 1: Comprobar con un bucle simple
La forma más directa es intentar dividir el número por todos los valores desde 2 hasta n - 1.
def es_primo(n):
if n < 2:
return False
for i in range(2, n):
if n % i == 0:
return False
return True
print(es_primo(7)) # True
print(es_primo(10)) # False
Método 2: Optimizar con la raíz cuadrada (recomendado)
Solo necesitas comprobar divisores hasta la raíz cuadrada de n. Si ninguno divide a n, el número es primo. Esto hace la función mucho más rápida.
import math
def es_primo(n):
if n < 2:
return False
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True
Método 3: Optimizar con la regla 6k ± 1
Para números grandes puedes saltar los pares y los múltiplos de 3. Todo primo mayor que 3 tiene la forma 6k - 1 o 6k + 1.
def es_primo(n):
if n < 2:
return False
if n in (2, 3):
return True
if n % 2 == 0 or n % 3 == 0:
return False
i = 5
while i * i <= n:
if n % i == 0 or n % (i + 2) == 0:
return False
i += 6
return True
Comparativa de métodos
| Método | Ventaja | Cuándo usarlo |
|---|---|---|
| Bucle simple | Fácil de entender | Aprender y números pequeños |
| Raíz cuadrada | Rápido para la mayoría | Recomendado en general |
| Regla 6k ± 1 | Muy rápido | Números grandes y concursos |
Casos especiales y errores comunes
Recuerda manejar los casos especiales antes que nada:
- Los números menores que 2 no son primos.
2es el único número primo par.0y1no son primos.
print(es_primo(1)) # False
print(es_primo(2)) # True
print(es_primo(0)) # False
Preguntas frecuentes
¿Es 1 un número primo?
No. Un número primo debe ser mayor que 1.
¿Es 2 un número primo?
Sí. 2 es el número primo más pequeño y el único primo par.
¿Cuál es la forma más rápida de comprobar primalidad en Python?
Para la mayoría de casos, la optimización con raíz cuadrada es suficiente. Para números muy grandes puedes usar la regla 6k ± 1 o librerías especializadas.
Contenido relacionado
- Cómo Eliminar Duplicados de una Lista en Python
- Cómo Convertir String a Int en Python
- Tutoriales How-To en Python
- Curso de Python desde Cero
Palabras clave relacionadas
cómo comprobar si un número es primo en python, número primo python, es primo python, verificar primo python, algoritmo número primo python, math sqrt python
Guarda este tutorial y compártelo si te fue útil. Encuentra más guías prácticas en la sección how-to de Python.