Skip to main content
 首页 » 编程设计

python之如何从 Python 中的整数列表中计算质数之和

2025年05月04日15rubylouvre

我很震惊,需要帮助.. 我想从给定的整数列表中找到素数的总和。这里有一些相同的测试用例。

n([3,3,1,13]) 
 
19 
 
n([2,4,6,9,11]) 
 
13 
 
n([-3,0,1,6]) 
 
0 

我写的代码如下,但是上面的测试用例失败了..

def sumprimes(n): 
    sum1 = 0 
    for i in range(0,len(n)): 
        num = n[i] 
        if num > 1: 
            for j in range(2, int(num**0.5)+1): 
                if num%j != 0: 
                    sum1 = sum1 + num 
        else: 
            sum1 = 0 
    return(sum1) 

请您参考如下方法:

这部分是错误的:

        for j in range(2, int(num**0.5)+1): 
            if num%j != 0: 
                sum1 = sum1 + num 

您正在为范围内未相除的每个数字求和 num。 如果所有它们不相除,您应该求和。

简单的方法是:

        prime = True 
        for j in range(2, int(num**0.5)+1): 
            if num%j == 0: 
                prime = False 
                break 
        if prime: 
            sum1 = sum1 + num 

或者以更 pythonic 的方式使用 all():

        if all(num%j != 0 for j in range(2, int(num**0.5)+1)): 
            sum1 = sum1 + num