编写函数使用数组,用筛法求100以内素数。
时间: 2023-04-15 13:01:51 浏览: 122
python 实现求100之内的素数
5星 · 资源好评率100%
好的,下面是使用筛法求100以内素数的函数:
```python
def sieve_of_eratosthenes(n):
"""
使用筛法求n以内的素数
"""
is_prime = [True] * (n+1) # 初始化所有数为素数
is_prime[] = is_prime[1] = False # 和1不是素数
for i in range(2, int(n**.5)+1):
if is_prime[i]:
# 将i的倍数标记为非素数
for j in range(i*i, n+1, i):
is_prime[j] = False
# 返回所有素数的列表
return [i for i in range(n+1) if is_prime[i]]
```
这个函数接受一个整数n作为参数,返回一个列表,其中包含所有小于等于n的素数。函数使用了筛法的思想,首先将所有数都标记为素数,然后从2开始,将2的倍数标记为非素数,再从3开始,将3的倍数标记为非素数,以此类推,直到根号n为止。最后,遍历所有数,将素数加入到结果列表中。
阅读全文