Generar números primos en Python

Generar números primos en Python
Aprenderá cómo generar y obtener números primos usando Python en este tutorial identificando todos los números primos dentro de un rango de valores especificados. Los números primos son aquellos que solo tienen el número en sí y el número 1 como factores. En otras palabras, solo el número 1 y el número en sí pueden dividir un número primo. No son completamente divisibles por ningún otro número. Trabajar con números primos es una habilidad que se usa con frecuencia en campos como la seguridad cibernética.

Después de terminar este tutorial, sabrá:

  • ¿Cuáles son los números primos??
  • Varios métodos de Python para obtener números primos.
  • Optimización del algoritmo de Python para obtener números primos.
  • Usando Python, encuentre todos los números primos dentro de un rango de valores especificado.

¿Qué son los números primos??

En Python, los números primos son números de tipo int más que 1 y no tienen otros factores que ellos mismos y 1. Un número primo es uno como 5, mientras que un número no predominante es cuatro (ya que 2 x 2 es igual a 4). Los números 2, 11, 23 y 43 se encuentran entre los pocos números primos.

Cómo se pueden generar números primos en Python?

Una serie de números primos puede parecer 2, 3, 5, 7, 9, 11, 13, etc. La lógica se puede implementar en Python para recrear esta secuencia de números primos y determinar si un número dado es primo o no. El uso de bibliotecas de Python, bucles, condiciones y la función Lambda son algunas técnicas para llevar a cabo esta tarea.

Existen varios enfoques para implementar números primos en Python; Explicamos algunos en los ejemplos a continuación.

Ejemplo # 1: Generación de la secuencia de números primos usando la función Lambda

Los números primos se pueden generar utilizando la función Lambda como se puede ver en el ejemplo a continuación.

Código:

def prime_seq (num):
para i en el rango (2, num):
if prime (i) == Verdadero:
imprimir (i, end = "")
demás:
aprobar
num = int (input ("Ingrese el rango:"))
Prime = lambda num: all (num%x != 0 para x en rango (2, int (num **.5) +1))
Prime_seq (num)

Producción:

Ingresamos el valor de la tecla 30 para que la función haya imprimido todos los números primos de 2 a 30. Uso de una función lambda que es una función huérfana o se usa una función anónima en el programa anterior para determinar el rango de números primos. Diseñamos el programa de tal manera que cuando ejecutamos el script, el programa le pedirá al usuario que ingrese un valor clave. Luego, el programa generará la secuencia o serie de números primos a partir de 2 hasta el valor clave especificado.

El flujo del programa:

El usuario ingresa al rango de entrada y el método de entrada de Python se utiliza para tomar esa entrada. La entrada se transforma explícitamente en el tipo de datos numérico int. En el proceso de invocar la función, el Cast Int se suministra como argumento. La función lambda se invoca por la función definida. Como resultado, la función Lambda se invoca para cada número o valor entero de 2 a un valor clave especificado y se realiza una verificación principal. Para hacer esta verificación principal, el número lógico%2! = 0 se usa.

Ejemplo # 2: Generación de números primos usando para bucle

Vimos cómo obtener una secuencia de números primos usando la función Lambda. Ahora, usaremos el bucle for y una condición para generar una secuencia de números primos.

Código:

num = int (input ("Enumer el rango:"))
para i en el rango (2, num):
para x en rango (2, i):
if (i%x == 0):
romper
demás:
Imprimir (i)

Producción:

Nuestro programa ha obtenido una serie de números primos de 2 a 13 con éxito a medida que ingresamos al valor 15. Este programa utiliza bucles y condiciones para obtener una serie de números primos. Se ejecuta de tal manera que, después de que el usuario ingrese a un entero específico, se generarán e imprimirán todos los números primos entre el rango desde 2 hasta el número de entrada especificado.

El flujo del programa:

El usuario ingresa al rango de entrada y la función de entrada () toma esa entrada. La entrada especificada se convierte explícitamente en un tipo int. En este ejemplo, dos enteros se determinan mediante bucle anidado; El primer bucle se asegura de obtener todos los números o enteros que se encuentran dentro del rango clave. La verificación del número primo está determinada por el segundo bucle. El entero manejado se muestra/se imprime en la consola si el resultado del proceso para cada valor entero denominado no es 0. Cada número en el rango especificado de dos al valor de entrada está sujeto a un bucle que repite este proceso.

Ejemplo # 3: Generación de números primos usando los bucles While

Ahora, usaremos bucles para obtener números primos en un rango especificado.

Código:

range = int (input ('Ingrese el rango:'))
num = 1
mientras (num <= range):
recuento = 0
x = 2
mientras (x <= num//2):
if (num % x == 0):
recuento = recuento + 1
romper
x = x + 1
if (count == 0 y num!= 1):
imprimir (" %d" %num, end = ")
num = num + 1

Producción:

Especificamos el valor de entrada de 45 y el programa extrajo todos los números primos hasta el número '45'. En el código anterior, los bucles y las condiciones se utilizan para determinar el rango de números primos. Una vez que el usuario ingresa a un entero, todos los números primos que caen entre el rango de 2 y la entrada especificada se generan y se muestran.

El flujo del programa:

El usuario ingresa al rango de entrada y el método de entrada de Python se utiliza para tomar esa entrada. La entrada se emitió luego en DataType int. Aquí, la verificación Prime se realiza usando un bucle de tiempo. El control del bucle se basa en una verificación condicional y el proceso de ciclismo continuará hasta que el valor ingresado exceda la variable de control de bucle. La variable para el control de bucle se inicializa con 1 y aumenta en 1 después de cada bucle. Una vez más, si el resultado del proceso para cada valor entero denominado no es cero, el entero manejado se imprimirá. Para cada valor entero de 1 al valor de clave especificado, este proceso se repetirá y ejecutará.

Ejemplo # 4: Generación de números primos usando la biblioteca Sympy en Python

Usando el Sympy.Función Primerange () En la biblioteca Sympy, podemos obtener una lista que contenga números primos dentro de un rango especificado utilizando esta función.

Código:

Importación Sympy
l_limit = int (input ("Límite inferior:"))
h_limit = int (input ("Límite más alto:"))
Prime_numbers = list (Sympy.Primerange (l_limit, h_limit+1))
Imprimir ("Prime números:", prime_numbers)

Producción:

Este programa utilizó una biblioteca predefinida para encontrar el rango de números primos. En este ejemplo, el módulo Sympy se usa para realizar la verificación Prime y la función ha generado una lista con números primos que se encuentran dentro de los límites más bajos y más altos, especificados por nosotros.

El flujo del programa:

El usuario ingresa al rango de menor y mayor rango. La entrada del usuario es procesada por la función de entrada de Python. La entrada que se obtuvo se lanza en un tipo int. El método Primerange () del módulo Sympy toma los valores de rango más bajo y mayor como entrada. La salida de la función se imprime después de ser fundida en una variable de lista.

Verificar números primos

Hemos visto diferentes enfoques para generar números primos. Ahora, también debería poder verificar si un número es primo o no. Para esto, puede consultar el programa que se proporciona a continuación. El enfoque más simple y básico es iterar a través del rango de enteros positivos de dos al número de entrada y verificar si el rango y el módulo del número son iguales a cero. Si eso sucede, el número no es un número primo porque tiene un divisor que no sea 'uno' y el número en sí.

Código:

Def CheckPrime (n):
Si n> 1:
para i en el rango (2, n):
Si n % i == 0:
falso retorno
Devolver verdadero
falso retorno
Imprimir (CheckPrime (13))
Imprimir (CheckPrime (12))
Producción:

Para el número 13, la función ha devuelto verdadero y falso para el número 12. Definimos la función 'CheckPrime', que solo acepta un solo entero como argumento porque los números primos deben ser mayores que 1, si el número de entrada no es mayor que uno, la función devuelve falso. Luego itera sobre el rango de dos al número especificado. La función devolverá falso si el módulo (%) del número ingresado 'num' y la iteración 'i' es igual a cero. Si no, el método devuelve verdadero.

Conclusión

En este tutorial, primero vimos la introducción a los números primos y luego discutimos cómo podemos generar números aleatorios en Python. Utilizamos diferentes enfoques para generar una serie/rango de números primos. Primero, utilizamos la función Lambda, en segundo lugar, utilizamos para bucles y condiciones, luego usamos el bucle While, y finalmente, utilizamos el método Primerange () del módulo Sympy para generar números aleatorios dentro de un rango especificado. También implementamos un ejemplo para verificar si un número es primo o no.