7-2 求指定范围内的素数
时间: 2024-05-01 16:23:18 浏览: 110
要求指定范围内的素数,可以使用筛法。
具体的步骤如下:
1. 初始化一个布尔数组,表示每个数是否为素数,所有数都初始化为true。
2. 从2开始遍历到范围的上限,对于每个数,如果它还没有被标记为非素数,则将它的倍数全部标记为非素数。
3. 遍历完成后,未被标记为非素数的数即为素数。
以下是代码实现:
```python
def get_primes(start, end):
is_prime = [True] * (end + 1) # 初始化一个布尔数组,表示每个数是否为素数
primes = [] # 存储素数的列表
for i in range(2, end+1):
if is_prime[i]:
if i >= start:
primes.append(i) # 将素数添加到列表中
for j in range(i*i, end+1, i):
is_prime[j] = False # 将i的倍数全部标记为非素数
return primes
```
其中,start和end分别表示范围的下限和上限。函数返回一个列表,包含指定范围内的所有素数。
例如,调用`get_primes(1, 20)`会返回`[2, 3, 5, 7, 11, 13, 17, 19]`。
阅读全文