Compruebe si un número es primo en Python

Vaibhhav Khetarpal 10 octubre 2023
  1. Utilice el método de iteración simple para determinar un número primo en Python
  2. Utilice la función sympy.isprime() para comprobar si el número dado es un número primo en Python
Compruebe si un número es primo en Python

Un número primo se puede representar como un número natural sin otros divisores positivos, excepto el número 1 y él mismo. El número 1 no se cuenta en la lista de primos.

Este tutorial discutirá los diferentes métodos que puede usar para verificar si un número es un número primo.

Utilice el método de iteración simple para determinar un número primo en Python

En este método, usamos un método de iteración simple usando un bucle for o while. Repita los números empezando por el 2 y subiendo hasta K/2 y comprobando si alguno de estos números divide a K.

Si se encuentra un número que coincide con este criterio, se devuelve False. Por otro lado, si todos los números no cumplen con este criterio, el número dado K es un número primo y se devuelve el valor True.

El siguiente código usa el método de iteración simple para verificar si el número dado es un número primo en Python.

k = 13

# 1 not being a prime number, is ignored
if k > 1:
    for i in range(2, int(k / 2) + 1):
        if (k % i) == 0:
            print("It is not a prime number")
            break
    else:
        print("It is a prime number")

else:
    print("It is not a prime number")

Producción :

It is a prime number

Puede optimizar el código anterior aplicando algunos cambios. Realice las siguientes optimizaciones para que el código sea aún más rápido:

  • Verifique hasta alcanzar la raíz del número dado en lugar de verificar el número exacto. Básicamente, este proceso elimina la redundancia que se produce cuando un factor mayor del número K es un múltiplo de un factor menor que ya se ha repetido.

  • Todos los números primos existen en forma de 6n ± 1, siendo 2 y 3 las únicas excepciones. Por lo tanto, verificar la divisibilidad del número dado con 2 y 3, y luego verificar cada número que tenga la forma 6n ± 1 es la solución más eficiente.

El siguiente código usa el método de iteración simple optimizado para verificar si el número dado es un número primo en Python.

def isitPrime(k):
    if k == 2 or k == 3:
        return True
    if k % 2 == 0 or k < 2:
        return False
    for i in range(3, int(k ** 0.5) + 1, 2):
        if k % i == 0:
            return False

    return True


print(isitPrime(13))

Producción :

True

El método de iteración optimizado lo hace más rápido y más eficiente que el método de iteración simple en aproximadamente un 30%.

Utilice la función sympy.isprime() para comprobar si el número dado es un número primo en Python

SymPy es una biblioteca en Python que se utiliza para implementar las matemáticas simbólicas. Su objetivo es ser un sistema de álgebra computacional simplista (CAS) que contiene todas las características esenciales. La instalación de este módulo es necesaria para este método, y se puede descargar simplemente usando el comando pip.

sympy.isprime() es una función incorporada en el módulo SymPy y se puede utilizar para comprobar posibles números primos. Es una función directa y devuelve True si el número a comprobar es primo y False si el número no es primo.

El siguiente código usa la función sympy.isprime() para verificar si el número dado es un número primo en Python.

from sympy import *

isprime(8)
isprime(11)

Producción :

False
True

Debemos tener en cuenta que cualquier número negativo no se incluye en el criterio de los números primos. El resultado de estas funciones puede variar si se compara cualquier número negativo.

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn