在 Python 中生成随机质数
本教程演示了在 Python 中生成和输出任何随机质数的方法。
质数是在编程中使用的非常有用的常量,尤其是在密码学中。质数的使用对于加密和散列至关重要,因为它们可用于加密和散列敏感数据,并防止它们被随意解密。
创建一个函数以生成给定范围的随机质数
质数只有 2 个因数(因数是可以将另一个数相除并得到整数的数)。质数只能被 1 及其自身整除。
从技术上讲,不可能生成一个从 0 到无穷大的随机质数,因为这将需要很多处理能力才能使其保持数量庞大。
鉴于此,需要包含一定范围的数字作为参数,以在设定范围内收集质数。
首先要做的是创建一个函数,以将给定范围内的所有质数收集到一个列表中。对于此函数,循环该范围内的所有数字,并检查是否只有 1 和它本身是可除数。
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))
输出将打印从给定范围 100 到 250 的所有质数。
输出:
[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]
下一步是根据函数 primesInRange()
返回的质数范围内生成一个随机数。
在 Python random
模块下,它具有一个名为 choice()
的函数,该函数从给定的可迭代或序列中选择一个随机元素。
给定上面实现的函数 primesInRange()
,使用列表变量捕获返回值,并使用 random.choice()
在列表中选择一个随机质数。使用 choice()
函数之前,不要忘记导入 random
模块。
import random
prime_list = primesInRange(100,250)
randomPrime = random.choice(prime_list)
print('Generated random prime number: ', randomPrime)
样本随机输出:
Generated random prime number: 191
这是此解决方案的完整源代码。
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