Générer un nombre premier aléatoire en Python
Ce didacticiel montre comment générer et générer n’importe quel nombre premier aléatoire en Python.
Les nombres premiers sont des constantes très utiles utilisées en programmation, en particulier en cryptographie. L’utilisation de nombres premiers est vitale pour le cryptage et le hachage car ils peuvent être utilisés pour crypter et hacher des données sensibles et éviter qu’elles ne soient décryptées au hasard.
Créer une fonction pour générer un nombre premier aléatoire avec une plage donnée
Les nombres premiers n’ont que 2 facteurs (les facteurs sont des nombres qui peuvent diviser un autre nombre et aboutir à un nombre entier). Les nombres premiers ne sont divisibles que par 1 et eux-mêmes.
Il est techniquement impossible de générer un nombre premier aléatoire allant de 0 à l’infini car cela prendra beaucoup de puissance de traitement pour le maintenir jusqu’à des nombres énormes.
Compte tenu de cela, une plage de nombres devrait être incluse en tant que paramètres pour rassembler les nombres premiers dans une plage définie.
La première chose à faire est de créer une fonction pour rassembler tous les nombres premiers de la plage donnée dans une liste. Pour cette fonction, bouclez tous les nombres dans la plage et vérifiez si les seuls nombres divisibles sont 1 et lui-même.
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 sortie imprimera tous les nombres premiers de la plage donnée de 100 à 250.
Production:
[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]
L’étape suivante consiste à générer un nombre aléatoire à partir de la plage de nombres premiers donnée renvoyée par la fonction primesInRange()
.
Sous le module random
de Python, il a une fonction nommée choice()
qui choisit un élément aléatoire à partir d’un itérable ou d’une séquence donnée.
Étant donné la fonction primesInRange()
implémentée ci-dessus, attrapez le retour avec une variable de liste et choisissez un nombre premier aléatoire dans la liste en utilisant random.choice()
. N’oubliez pas d’importer le module random
avant d’utiliser la fonction choice()
.
import random
prime_list = primesInRange(100, 250)
randomPrime = random.choice(prime_list)
print("Generated random prime number: ", randomPrime)
Exemple de sortie aléatoire:
Generated random prime number: 191
Voici le code source complet de cette solution:
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)
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