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.
  • 2 es el único número primo par.
  • 0 y 1 no 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

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.