本题要求统计给定整数 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 的每个数,检查是否是素数,并将素数的个数和它们的和累加到相应的变量中。
最后,将素数的个数和它们的和输出即可。
根据上述思路,我们可以编写代码实现这个过程。
# 判断是否为素数的函数
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 False
return 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 += number
prime_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
的值即可。