输出[a,b]区间内所有素数,输出格式为10个素数一行,素数间以一个空格分隔,一行最后一个素数之后没有空格。编写函数判断一个数是否为素数,主函数调用此自定义函数完成题目要求。 输入格式: 测试数据有多组,处理到文件尾。每组测试数据在一行中输入两个正整数a和b。 输出格式: 输出[a,b]区间所有素数,一行输出10个素数,两个素数之间用空格分隔,一行最后一个素数之后没有空格。
时间: 2023-12-10 12:39:54 浏览: 111
以下是 Python 代码实现:
```python
import math
# 判断一个数是否为素数
def is_prime(n):
if n < 2:
return False
for i in range(2, int(math.sqrt(n))+1):
if n % i == 0:
return False
return True
# 输出[a,b]区间内所有素数,10个素数一行
def output_prime(a, b):
count = 0
for i in range(a, b+1):
if is_prime(i):
count += 1
print(i, end=' ')
if count % 10 == 0:
print()
if count % 10 != 0:
print()
# 主函数
if __name__ == '__main__':
while True:
try:
a, b = map(int, input().split())
output_prime(a, b)
except EOFError:
break
```
在主函数中使用 `while` 循环可以处理多组测试数据。`is_prime` 函数用于判断一个数是否为素数,它的实现是通过从 2 到 $\sqrt{n}$ 的范围内遍历,如果能够整除则不是素数。在 `output_prime` 函数中,遍历 [a,b] 区间内的所有数,如果是素数则输出,并且维护一个计数器 count,每输出一个素数就将其加 1,当 count 取模 10 等于 0 时表示输出了 10 个素数,就换行输出,否则继续输出。最后需要判断一下最后一行是否已经输出完毕,如果不是则换行。
阅读全文