(程序题)统计素数及求和:求出所有在正整数[ M , N ]之间的素数之和,并输出素数的个数,其中1< M < N 。输入格式:540 示例 192count=10(注意:中间空一个英文字符空格)
时间: 2025-01-24 22:10:37 浏览: 50
以下是一个Python程序,用于统计给定范围内素数的个数并求和:
```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
def count_and_sum_primes(M, N):
"""统计素数个数并求和"""
primes = [num for num in range(M, N + 1) if is_prime(num)]
count = len(primes)
total = sum(primes)
return count, total
# 输入处理
input_str = input().strip()
M, N = map(int, input_str.split())
# 计算结果
count, total = count_and_sum_primes(M, N)
# 输出结果
print(f"{count} {total}")
```
这个程序的工作原理如下:
1. `is_prime` 函数用于判断一个数是否为素数。它通过检查从 2 到该数平方根的所有整数是否能整除该数来判断。
2. `count_and_sum_primes` 函数使用列表推导式和 `is_prime` 函数来生成指定范围内的素数列表。然后,它计算列表的长度(素数的个数)和列表的总和(素数的和)。
3. 程序从标准输入读取输入,使用 `split` 方法将其分割成两个整数 M 和 N。
4. 调用 `count_and_sum_primes` 函数获取结果。
5. 最后,以要求的格式打印结果,使用 f-string 格式化字符串。
使用这个程序,你可以输入一个范围,例如 "192",程序将输出类似 "10 1223" 的结果,其中 10 是素数的个数,1223 是这些素数的和。
阅读全文
相关推荐


















