Python一行输出N以内的素数
时间: 2023-05-25 12:06:51 浏览: 96
python输出n以内的所有素数
5星 · 资源好评率100%
以下是Python代码:
```python
N = 100
primes = [2] + [i for i in range(3, N + 1, 2) if all(i % j != 0 for j in range(3, int(i ** 0.5) + 1, 2))]
print(primes)
```
输出结果为:
```
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
```
解释一下上面的代码:
- 首先,设定一个最大值N;
- 然后,生成一个列表,其中包含2和所有奇数;
- 最后,使用all()函数来判断每个数是否为素数。具体做法是,用range()函数生成一个包含3到i开平方根的奇数的列表(注意,只需要判断到开平方根即可,因为大于开平方根的因子已经在前面判断过了),然后用all()函数来判断i是否能被这些数整除。如果i不能被整除,则i为素数,加入primes列表。
阅读全文