质数之和不正确

The sum of prime number is incorrect

代码没有返回质数之和,我做错了什么?

the_sum = 0
for number in range(20):
    if number > 3:
        for i in range(2,number):
            if (number%i)==0:
                break
        else:
            the_sum += number
            print (the_sum)
the_sum = 0
for number in range(20):
    if number >= 3:
        for i in range(2,number):
            if (number%i)==0:
                break
            elif i == (number-1):
                the_sum += number
    elif number==2:
        the_sum += number

print (the_sum)

请试试这个。

2 是质数,您需要将其包括在内。还有 3,你检查的是 > 3 ,它应该是 >=

the_sum = 0
for number in range(2,20):
    for i in range(2,number):
        if (number%i)==0:
            break
    else:
        the_sum += number
print(the_sum)

我更改了代码的以下几行,如果条件我将其更改为 if number >= 2 而不是 if number > 3 因为两个也是质数,所以需要将其添加到总和中作为嗯。

注意:范围函数总是以 0 而不是 1 开始生成迭代,并以小于限制的 1 结束,例如:

range(0, 4)

将从 0 to 4

生成数字
the_sum = 0
for number in range(1, 4):
    # numbers = [1, 2, 3,]
    if number >= 2:
        for i in range(2,number):

            if (number%i)==0:
                break
        else:
            the_sum += number


print (the_sum)