题目描述
统计素数并求和
本题要求统计给定整数 M M M 和 N N N 区间内素数的个数并对它们求和。
输入格式:
输入在一行中给出两个正整数 M M M 和 N ( 1 ≤ M ≤ N ≤ 500 ) N(1≤M≤N≤500) N(1≤M≤N≤500)。
输出格式:
在一行中顺序输出 M M M 和 N N N 区间内素数的个数以及它们的和,数字间以空格分隔。
输入样例:
10 31
输出样例:
7 143
解题思路
本题要求统计给定整数 M M M 和 N N N 区间内素数的个数并对它们求和。
首先,我们需要判断一个数是否为素数。素数是指只能被 1 和自身整除的大于 1 的整数。因此,我们可以编写一个函数 is_prime
来判断一个数是否为素数。
接下来,我们需要遍历从 M M M 和 N N N 的每个数,检查是否是素数,并将素数的个数和它们的和累加到相应的变量中。
最后,将素数的个数和它们的和输出即可。
根据上述思路,我们可以编写代码实现这个过程。
Python代码实现
# 判断是否为素数的函数
def is_prime(num):# 小于2的数不是素数if num < 2 :return False# 判断n能否被2到n的平方根之间的数整除for i in range(2, int(num ** 0.5) + 1):if num % i == 0:return Falsereturn True# 输入m和n
m, n = map(int, input().split())# 初始化
prime_sum = 0
prime_count = 0# 遍历从m到n的每个数,检查是否是素数并累加到素数和中
for number in range(m, n + 1):if is_prime(number):prime_sum += numberprime_count += 1# 输出素数和
print(prime_count, prime_sum)
以上代码中,我们首先定义了一个 is_prime
函数,用于判断一个数是否为素数。然后,通过输入函数获取用户输入的 M 和 N 的值。
接下来,我们初始化变量 prime_sum
和 prime_count
,用于记录素数的和和个数。
然后,我们通过一个循环遍历从 M 到 N 的每个数,并使用 is_prime
函数判断是否为素数。如果是素数,则将这个数累加到 prime_sum
中,并将 prime_count
值加一。
最后,输出 prime_count
和 prime_sum
的值即可。