Generar un número primo aleatorio en Python

Rayven Esplanada 10 octubre 2023
Generar un número primo aleatorio en Python

Este tutorial muestra formas de generar y generar cualquier número primo aleatorio en Python.

Los números primos son constantes muy útiles que se utilizan en programación, especialmente en criptografía. El uso de números primos es vital para el cifrado y el hash, ya que se pueden utilizar para cifrar y hacer hash de datos confidenciales y evitar que se descifren al azar.

Cree una función para generar un número primo aleatorio con un rango dado

Los números primos solo tienen 2 factores (los factores son números que pueden dividir a otro número y dar como resultado un número entero). Los números primos solo son divisibles entre 1 y ellos mismos.

Es técnicamente imposible generar un número primo aleatorio que vaya de 0 a infinito, ya que esto requerirá mucha potencia de procesamiento para mantenerlo hasta números grandes.

Dado eso, sería necesario incluir un rango de números como parámetros para recopilar números primos dentro de un rango establecido.

Lo primero que debe hacer es crear una función para reunir todos los números primos dentro del rango dado en una lista. Para esta función, repita todos los números dentro del rango y verifique si los únicos números divisibles son 1 y él mismo.

def primesInRange(x, y):
    prime_list = []
    for n in range(x, y):
        isPrime = True

        for num in range(2, n):
            if n % num == 0:
                isPrime = False

        if isPrime:
            prime_list.append(n)

    return prime_list


print(primesInRange(100, 250))

La salida imprimirá todos los números primos desde el rango dado 100 hasta 250.

Producción :

[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241]

El siguiente paso es generar un número aleatorio del rango dado de números primos devueltos por la función primesInRange().

Bajo el módulo random de Python, tiene una función llamada choice() que elige un elemento aleatorio de un iterable o secuencia dada.

Dada la función primesInRange() implementada anteriormente, captura el retorno con una variable de lista y elige un número primo aleatorio dentro de la lista usando random.choice(). No olvide importar el módulo random antes de utilizar la función choice().

import random

prime_list = primesInRange(100, 250)
randomPrime = random.choice(prime_list)

print("Generated random prime number: ", randomPrime)

Muestra de salida aleatoria:

Generated random prime number:  191

Este es el código fuente completo de esta solución:

import random


def primesInRange(x, y):
    prime_list = []
    for n in range(x, y):
        isPrime = True

        for num in range(2, n):
            if n % num == 0:
                isPrime = False

        if isPrime:
            prime_list.append(n)
    return prime_list


prime_list = primesInRange(100, 250)
randomPrime = random.choice(prime_list)

print("Generated random prime number: ", randomPrime)
Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

Artículo relacionado - Python Number