用函数实现求所有(50~100)之间素数的和

以下是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一定是素数。

猜你喜欢

转载自blog.csdn.net/qq_51447496/article/details/130733984