第1关:欧拉筛法求素数 python
时间: 2023-10-12 09:41:50 浏览: 333
euler:欧拉项目的解决方案
欧拉筛法是一种高效的求素数的算法。下面是使用 Python 实现欧拉筛法的示例代码:
```python
def sieve_of_eratosthenes(n):
primes = [True] * (n+1)
primes[0] = primes[1] = False
p = 2
while p * p <= n:
if primes[p]:
for i in range(p * p, n+1, p):
primes[i] = False
p += 1
result = []
for i in range(2, n+1):
if primes[i]:
result.append(i)
return result
# 示例使用
n = 100
prime_numbers = sieve_of_eratosthenes(n)
print(prime_numbers)
```
这段代码中,我们使用布尔数组 `primes` 来标记每个数是否为素数。初始时,将所有数都标记为素数。然后从 2 开始,将其倍数标记为非素数,直到 p * p 大于 n。最后,遍历数组 `primes`,将标记为素数的数添加到结果数组中,即为所求的素数序列。
以上是求解欧拉筛法的 Python 示例代码,希望能够帮助到你!如果你有任何疑问,请继续提问。
阅读全文