2-10000的所有质数,5个为一行python
时间: 2024-11-22 12:48:46 浏览: 14
生成2到10000之间的所有质数可以使用Python的`itertools`库配合一个简单的筛选函数。我们将每五个质数放入一个列表中,然后打印出来。以下是实现这一功能的代码:
```python
import itertools
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, 10001) if is_prime(i)]
chunks_of_five = [primes[i:i+5] for i in range(0, len(primes), 5)]
for chunk in chunks_of_five:
print(chunk)
```
这段代码首先定义了一个判断是否为质数的辅助函数`is_prime()`,然后通过列表推导式找到所有的质数并存储在`primes`列表中。接着,使用`itertools.grouper`函数将质数分为每组五个。
运行此程序会按行输出2到10000之间5个一组的质数。
相关问题
python编写程序,找出并按大小顺序输出n以内(n<10000包含n)的所有素数。输出时,每5个素数一行,每个数占5位宽,左对齐
以下是 Python 代码,可以找出并按大小顺序输出 n 以内的所有素数:
```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
n = 10000
primes = [i for i in range(2, n+1) if is_prime(i)]
for i in range(0, len(primes), 5):
print("{:<5} {:<5} {::<5} {:<5} {:<5}".format(*primes[i:i+5]))
```
这个程序使用了一个 `is_prime` 函数来判断一个数是否为素数,然后使用列表推导式来生成所有小于等于 n 的素数。最后,使用一个循环来按照要求输出素数。
本题目要求读入2个正整数x和k,然后输出大于等于x的k个最小素数。 输入格式: 输入2个正整数x(1-10000)和k(1-50) 输出格式: 输出k个素数,从小到大排列,每一行5个数据,每个数据间用一个空格隔开,最后也有一个空格。
以下是 Python3 代码实现:
```python
import math
def is_prime(num):
if num < 2:
return False
for i in range(2, int(math.sqrt(num))+1):
if num % i == 0:
return False
return True
x, k = map(int, input().split())
count = 0
num = x
while count < k:
if is_prime(num):
print(num, end=" ")
count += 1
if count % 5 == 0:
print()
num += 1
```
其中,`is_prime` 函数判断一个数是否为素数,`x` 和 `k` 分别表示输入的两个正整数,`count` 记录已经输出的素数个数,`num` 表示当前判断的数。
首先,我们读入 `x` 和 `k`,然后从 `x` 开始往后判断每个数是否为素数,若为素数则输出该数。当输出的素数个数达到 `k` 个时,停止输出。
为了保证每行输出5个数据,我们在每输出5个数据时,换行输出。
阅读全文