实现primeList()函数,输入小于整数N的所有素数
时间: 2024-12-12 17:28:01 浏览: 9
Python编程判断一个正整数是否为素数的方法
5星 · 资源好评率100%
实现一个名为`primeList`的函数,用于生成并返回所有小于给定整数`N`的素数列表,可以采用一种常见的算法,比如埃拉托斯特尼筛法(Sieve of Eratosthenes)。这个算法的工作原理是遍历从2到`N`的所有数字,将每个素数的倍数标记为合数,然后找出未被标记的数字即为素数。
以下是Python语言的一个示例实现:
```python
def primeList(N):
primes = []
sieve = [True] * (N + 1)
sieve[0], sieve[1] = False, False
for num in range(2, int(N**0.5) + 1):
if sieve[num]:
# 将num的倍数标记为合数
for multiple in range(num*num, N + 1, num):
sieve[multiple] = False
# 收集所有大于1且未被标记为合数的数
for num in range(2, N):
if sieve[num]:
primes.append(num)
return primes
# 示例:
N = 30
print(primeList(N)) # 输出: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
```
在这个实现中,我们首先初始化一个布尔数组`sieve`,其中`sieve[i]`表示`i`是否是素数。然后通过循环检查每个数,如果它是素数,则将其倍数设为合数。最后,筛选出sieve中值为True的索引,得到的就是小于`N`的素数列表。
阅读全文