使用Python编写程序,输入一个大于 2 的自然数,然后输出小于该数字的所有素数组 成的列表使用列表实现筛选法求素数
时间: 2023-11-18 16:08:36 浏览: 246
以下是使用Python实现的程序,使用的是筛选法求小于输入数字的所有素数。
```python
def primes(n):
"""
返回小于 n 的所有素数的列表,使用筛选法求解
"""
# 初始化标记列表,假设所有数字都是素数
is_prime = [True] * n
# 0和1不是素数
is_prime[0] = is_prime[1] = False
# 对于每个数,如果它是素数,则将其倍数标记为非素数
for i in range(2, int(n ** 0.5) + 1):
if is_prime[i]:
for j in range(i * i, n, i):
is_prime[j] = False
# 将所有素数添加到结果列表中
primes = []
for i in range(2, n):
if is_prime[i]:
primes.append(i)
return primes
# 主程序
n = int(input("请输入一个大于2的自然数:"))
while n <= 2:
n = int(input("输入错误,请重新输入:"))
prime_list = primes(n)
print("小于", n, "的所有素数为:", prime_list)
```
运行结果示例:
```
请输入一个大于2的自然数:20
小于 20 的所有素数为: [2, 3, 5, 7, 11, 13, 17, 19]
```
阅读全文