python生成大素数的函数
时间: 2024-12-06 22:20:29 浏览: 16
Python实现高效求解素数代码实例
在Python中,生成大素数可以采用多种算法,例如埃拉托斯特尼筛法(Sieve of Eratosthenes)、米勒-拉宾素性测试(Miller-Rabin Primality Test)等。这里以简单的埃拉托斯特尼筛法为例,给出一个生成指定范围内素数的函数:
```python
def generate_primes(n):
primes = []
sieve = [True] * (n + 1) # 初始化一个布尔数组,所有数默认为质数
# 0和1不是素数
sieve[0], sieve[1] = False, False
for i in range(2, int(n**0.5) + 1): # 只需要检查到n的平方根
if sieve[i]: # 如果i是质数
primes.append(i)
for j in range(i*i, n+1, i): # 将i的倍数标记为非质数
sieve[j] = False
# 遍历剩余未处理的数,如果是质数就加入
for i in range(int(n**0.5) + 1, n+1):
if sieve[i]:
primes.append(i)
return primes
# 示例使用
largest_prime = generate_primes(10000000)
```
这个函数首先初始化一个布尔数组`sieve`,然后从2开始去除掉所有的合数(即非素数),最后将剩下的数字作为素数返回。
阅读全文