用python完成下面题目1.编写程序,使用筛选法求解小于n的所有素数。
时间: 2024-02-19 11:03:53 浏览: 126
python使用筛选法计算小于给定数字的所有素数
好的,我可以帮你解决这个问题。以下是使用筛选法求解小于n的所有素数的Python代码:
```python
def sieve_of_eratosthenes(n):
"""
使用筛选法求解小于n的所有素数
"""
# 创建一个长度为n的布尔数组,初始化为True
primes = [True] * n
# 0和1不是素数,将它们标记为False
primes[0] = primes[1] = False
# 从2开始遍历到sqrt(n),将所有质数的倍数标记为False
for i in range(2, int(n**0.5)+1):
if primes[i]:
for j in range(i*i, n, i):
primes[j] = False
# 返回所有标记为True的下标(即素数)
return [i for i in range(n) if primes[i]]
# 测试代码
n = 100
primes = sieve_of_eratosthenes(n)
print(f"小于{n}的所有素数为:{primes}")
```
运行结果:
```
小于100的所有素数为:[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
```
阅读全文