简体   繁体   中英

The sum of prime number is incorrect

The code is not returning the sum of of the prime numbers, what I'm i doing wrong?

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)

please Try this.

2 is a prime number, you need to include that. also 3, you are checking > 3 , it should be >=

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)

I changed the following lines of the code the if conditon I changed it to if number >= 2 instead of if number > 3 since two is a prime as well, it would need to be added in the sum as well.

Note : That the range function always starts generating iterables with a 0 not a 1 and ends with one less than the limit so for example:

range(0, 4)

would generate numbers from 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)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM