Python一行输出N以内的素数
时间: 2023-05-25 22:06:51 浏览: 59
以下是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列表。
相关问题
python输出n以内的素数
以下是Python代码,可以输出n以内的所有素数:
```python
n = int(input("请输入一个正整数n:"))
# 判断素数函数
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num**0.5)+1):
if num % i == 0:
return False
return True
# 输出n以内的素数
print("2", end=" ")
for i in range(3, n+1, 2):
if is_prime(i):
print(i, end=" ")
```
代码解释:
1. 用户输入一个正整数n;
2. 定义一个判断素数的函数is_prime,如果一个数小于2则不是素数,如果大于等于2,就从2到该数的平方根进行遍历,如果有一个数可以整除该数,则该数不是素数,否则就是素数;
3. 在主程序中,从3开始到n,每次加2,遍历所有奇数,如果该数是素数,则输出该数。特别地,2是一个特殊的素数,因此先输出2;
4. 输出函数中的end参数是为了将输出结果放在同一行。
希望能够解决您的问题!
Python 输出150以内的所有素数,每9个一行
以下是使用Python编写的程序,以输出150以内的所有素数,每9个一行:
```python
def is_prime(num):
"""
判断一个数是否为素数
"""
if num < 2:
return False
for i in range(2, int(num**0.5)+1):
if num % i == 0:
return False
return True
count = 0
for i in range(2, 151):
if is_prime(i):
print(i, end=' ')
count += 1
if count % 9 == 0:
print()
```
该程序中,`is_prime`函数用于判断一个数是否为素数。在主程序中,使用`range`函数遍历2到150之间的所有数,对每个数调用`is_prime`函数判断是否为素数。如果是素数,则输出该数并将计数器`count`加1。当`count`模9等于0时,即输出了9个素数后,输出一个换行符。