如何优化这段代码来提高查找质数的效率?
时间: 2024-10-14 07:09:47 浏览: 2
当前的代码虽然简洁,但在寻找质数方面并非最优。为了提高查找质数的效率,我们通常会采用“埃拉托斯特尼筛法”(Sieve of Eratosthenes),这是一种更高效的方法,尤其对于大范围的质数查找。下面是基于这个原理的优化版本:
```python
def sieve_of_eratosthenes(n):
primes = [True] * (n+1)
p = 2
while p * p <= n:
if primes[p]:
for i in range(p * p, n+1, p):
primes[i] = False
p += 1
prime_numbers = [p for p in range(2, n+1) if primes[p]]
return prime_numbers
# 使用埃拉托斯特尼筛法获取50到150之间的质数
optimized_primes = sieve_of_eratosthenes(150)
print(f"50到150之间的质数优化后是: {optimized_primes}")