python代码 要求:输入一个大于 2 的自然数,然后输出小于该数字的所有素数组成的列表
时间: 2023-11-18 12:16:38 浏览: 91
基于jupyter notebook的python编程—–使用列表实现筛选法求素数(输入一个大于 2 的自然数,然后输出小于该数字的所有素数组成的列表)
5星 · 资源好评率100%
好的,您可以使用以下 Python 代码实现:
```python
num = int(input("请输入一个大于2的自然数:"))
# 判断素数的函数
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
# 生成素数列表
primes = [i for i in range(2, num) if is_prime(i)]
print("小于%d的所有素数为:" % num, primes)
```
首先,我们使用 `input()` 函数获取用户输入的自然数,并定义一个判断素数的函数 `is_prime()`。然后,我们使用列表推导式生成小于该数字的所有素数组成的列表。具体地,我们从 2 开始遍历到这个数字,对于每个数字,如果它是素数,则将其加入到素数列表中。最后,我们输出素数列表。
在 `is_prime()` 函数中,我们使用了一个常用的素数判断方法,即从 2 到 $\sqrt{n}$ 之间的所有整数都不能整除 n。这是因为如果 n 可以被一个大于 $\sqrt{n}$ 的整数整除,那么必然也可以被一个小于 $\sqrt{n}$ 的整数整除。而对于每个小于 $\sqrt{n}$ 的整数,我们只需要判断它们是否能整除 n 即可,这样可以减少计算量。
阅读全文