帮我写一段Python程序 使用筛选法求解小于n的所有素数
时间: 2024-04-29 18:26:41 浏览: 85
python使用筛选法计算小于给定数字的所有素数
好的,以下是使用筛选法求解小于n的所有素数的Python程序:
```python
def sift_prime(n):
"""
使用筛选法求解小于n的所有素数
"""
# 初始化标记数组为True表示都是素数
prime = [True] * n
prime[0] = False # 1不是素数
prime[1] = False # 2是素数,从3开始判断
for i in range(2, int(n ** 0.5) + 1): # 从2到根号n遍历
if prime[i]: # i是素数时
for j in range(i * i, n, i): # 将i的倍数标记为合数
prime[j] = False
# 返回所有素数
return [i for i in range(n) if prime[i]]
# 测试
print(sift_prime(100))
```
这个程序使用了筛选法,时间复杂度为O(nloglogn),比暴力枚举要快。
阅读全文