以下是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 sum_primes(start, end): primes_sum = 0 for num in range(start, end+1): if is_prime(num): primes_sum += num return primes_sum # 测试 start, end = 50, 100 primes_sum = sum_primes(start, end) print(f"{start}~{end}之间所有素数的和为:", primes_sum)
解释一下代码:
- 第2~8行定义了一个名为is_prime的函数,用于判断一个整数是否是素数。根据素数的定义,所有小于2的数都不是素数。而大于等于2的数,如果在(2, 根号n]范围内没有其他整数能够整除它,那么它就是素数。
- 第1015行定义了一个名为`sum_primes`的函数,输入参数为起始和结束数字。题目中要求计算50100之间素数的和,因此这里默认输入的起始和结束数字分别为50和100。
- 第12行创建一个变量primes_sum初始化为0,存储所有素数的和。
- 第13~15行在循环过程中判断当前数字是否是素数,如果是,则加入到primes_sum中。
- 第16行使用return语句将计算的所有素数和作为结果返回。
- 第19~21行调用sum_primes函数,并将返回结果存储到变量primes_sum中。
- 最后输出相关信息。
注意:在判断一个整数是否是素数时,只需要检查从2到根号n之间的数字就行了。这是因为如果n可以被m整除,那么m一定有一个对应的因子k,而k也可以被n/m整除。其中至少有一个因子小于或等于根号n,而另一个则大于或等于根号n。因此如果我们遍历到根号n还没有找到能够整除n的因子,那么n一定是素数。