编写程序,输入一个大于 2 的自然数,然后输出小于该数字的所有素数组成的列 表。
时间: 2023-11-18 18:11:13 浏览: 89
思路:
首先,判断输入的数字是否大于 2,如果不是则提示输入错误。然后,使用一个循环从 2 到该数字之间的所有数,对每个数进行素数判断,如果是素数则加入到结果列表中。
素数判断方法:
一个数是素数当且仅当它大于 1,且它不能被任何比 1 大且小于它本身的整数整除。因此,我们可以使用一个循环从 2 到该数的平方根(向下取整),判断该数能否被这些数整除。
代码实现如下:
```python
import math
n = int(input("请输入一个大于 2 的自然数:"))
if n <= 2:
print("输入错误!")
else:
primes = [] # 用于存储素数的列表
for i in range(2, n):
is_prime = True
for j in range(2, int(math.sqrt(i))+1):
if i % j == 0:
is_prime = False
break
if is_prime:
primes.append(i)
print("小于 %d 的所有素数为:" % n)
print(primes)
```
测试:
输入一个大于 2 的自然数:
```python
请输入一个大于 2 的自然数:20
```
输出结果:
```python
小于 20 的所有素数为:
[2, 3, 5, 7, 11, 13, 17, 19]
```
阅读全文