(3) 统计素数并求和:输入两个正整数 m 和 n(1≤m≤n≤500),统计给定整数 m 和 n 区间 内素数的个数并对它们求和
时间: 2024-12-04 12:25:44 浏览: 26
统计给定整数区间 [m, n] 内的素数个数并对它们求和的问题,可以用类似之前提到的算法,但考虑到范围限制(1 ≤ m ≤ n ≤ 500),我们可以稍作调整来提高效率。在这种范围内,我们不需要像之前的例子那样一直检查到很大的数,而是可以仅检查到 √n 即可。
以下是针对这个范围的一种Python实现:
```python
import math
def count_and_sum_primes(m, n):
prime_count = 0
prime_sum = 0
for num in range(m, n + 1):
if is_prime(num): # 判断是否为素数
prime_count += 1
prime_sum += num
return prime_count, prime_sum
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
# 示例
m = 1
n = 500
count, sum_of_primes = count_and_sum_primes(m, n)
print(f"在区间 {m} 到 {n} 内,共有 {count} 个素数,它们的和是 {sum_of_primes}.")
阅读全文