Número primo en Python

Hoy vamos a ver cómo comprobar si un número es primo en Python. Recuerda que un número es primo si no es divisible entre otro número que no sea sí mismo y el 1.

Por ejemplo, el 5 es primo porque solo es divisible entre 1 y entre 5. Llamamos divisible a un número cuando al dividirlo de manera entera, el residuo es 0.

Veamos entonces cómo saber si número es primo con el lenguaje Python.

Algoritmo

Número primo en Python – Imprimir primeros mil números

El algoritmo es sencillo: probamos con todos los números menores al número en cuestión, exceptuando al número y al uno. Si terminamos de probar y no encontramos que haya sido divisible, regresamos False. En caso contrario, True.

Hay una optimización que se puede lograr, haciendo el ciclo desde 2 hasta la mitad del número, así nos ahorramos la mitad del camino.

Función “es primo” en Python

Vamos a encerrar el comportamiento en una función que recibe el número. Desde ya sabemos que el 0, 1 y 4 no son primos. Hacemos este if porque si no, el ciclo fallará por su naturaleza de dividir entre 2 al número.

Obviamente podríamos crear un if gigante e infinito con todos los primos, pero no sería factible. Por lo tanto debemos hacer un ciclo “optimizado” que va desde 2 hasta la mitad del número del cual queremos comprobar si es primo.

def primo(numero):
    if numero == 0 or numero == 1 or numero == 4:
        return False
    for x in range(2, int(numero/2)):
        if numero % x == 0:
            return False
    return True

Y eso es todo. La función recibe un número y nos dice si es o no primo, usando Python.

Comprobar si número es primo

Así que podemos usarla del siguiente modo:

"""
	https://parzibyte.me/blog
"""


def primo(numero):
    if numero == 0 or numero == 1 or numero == 4:
        return False
    for x in range(2, int(numero/2)):
        if numero % x == 0:
            return False
    return True

# Probar
numero = int(input("Dame un número: "))
es_primo = primo(numero)
if es_primo:
	print("Es primo")
else:
	print("NO es primo")

En este caso se le solicita al usuario un número y se le indica si el número es o no primo.

Imprimir lista de números primos con Python

Para terminar este ejercicio veamos otro modo de probar la función. Vamos a usar Python para imprimir los números primos que hay entre 1 y 1000. El código queda así:

"""
	https://parzibyte.me/blog
"""


def primo(numero):
    if numero == 0 or numero == 1 or numero == 4:
        return False
    for x in range(2, int(numero/2)):
        if numero % x == 0:
            return False
    return True

# Vamos desde el 1 hasta el 1000 (puse 1001 porque el límite no es inclusivo)
print("""
Imprimiendo números primos desde 1 hasta 1000
	https://parzibyte.me/blog 
""")
for numero in range(1001):
	if primo(numero):
		print(numero, end=","

La salida la puedes ver en la imagen arriba de estas líneas. En este caso hacemos un ciclo desde 1 hasta 1000 y si el número es primo, lo imprimimos. Al final tendremos la secuencia de números primos.

También te invito a leer más sobre Python en este enlace.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *