Números primos con Python


Numeros primos en python

[MicroPost] En este micro articulo aprenderemos como verificar si un número es primo o no en Python, puedes encontrar el código funcional al final en nuestro repositorio de Github.

Que son los números primos

En términos matemáticos, un número primo es un número natural mayor que 1, el cual que tiene únicamente dos divisores distintos: él mismo número y el 1.

Algoritmo

Utilizamos Python orientado a objetos para realizar el ejemplo, el siguiente método nos permite verificar si un número es primo o no.-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def isPrime(self, n):
    '''
    Verificamos si el numero es primo o no
    '''

    # Verificamos si es divisible entre dos
    if n % 2 == 0 : return False

    # Verificamos los numero impares
    for i in range(3, n + 1, 2):
        if (i * i) < n :
            if n % i == 0 :
                return False

    return True

El algoritmo esta optimizado para obtener el resultado esperado en el menor tiempo posible, por ejemplo en la linea 6 verificamos si el número es par, ya que los números primos son impares, de esta forma obtendremos un resultado rápidamente.-

1
if n % 2 == 0 : return False

En caso de que no sea par, entramos a un ciclo for, donde empezamos a verificar a partir del número 3 (recuerda que un numero primo es mayor a 1 y no debe ser par, por eso no tomamos en cuenta el número 1 y 2).-

1
2
3
4
for i in range(3, n + 1, 2):
    if (i * i) < n :
        if n % i == 0 :
            return False

En cada iteración verificamos si el número dado (n) es divisible por el dato obtenido en i, si es así, el número no es primo.-

1
2
if n % i == 0 :
    return False

Casos de uso

Para verificar su funcionamiento, creamos un método para ingresar el dato.-

1
2
3
4
5
6
7
8
9
10
11
12
13
def enterData(self):
    '''
    Obtiene un dato ingresado por el usuario
    '''

    val = raw_input("Ingrese el numero a verificar: ")

    # verificamos que sea un numero entero
    try :
        val = int(val)
        return val
    except :
        return self.enterData()

Y declaramos la instancia de nuestra clase y la ejecutamos.-

1
2
3
4
5
if __name__ == "__main__":
    # Instanciamos un objeto
    np = NumeroPrimo()
    # Corremos el programa
    np.init()

Ahora si ejecutamos el programa y probamos con el conjunto de datos { 25, 29 } obtendremos el siguiente resultado.-

1
2
3
4
Ingrese un numero: 25
No es primo
Ingrese un numero: 29
Es primo

Código de ejemplo

Puedes encontrar el código completo en el siguiente enlace (repositorio de github).-

NumerosPrimos.py

Conclusiones

Si te encontraste útil este articulo, por favor compártelo para que pueda llegar a más personas.

Que tengan feliz código


Te fue de utilidad el articulo, ayudanos a compartir para que a más personas les resulte util!

Te interesa el tema, recibe los nuevos articulos directamente en tu email.-