加50和70之间的所有素数-为什么我的代码不起作用?

问题描述 投票:-1回答:1

代码:

counter = 50
total = 0
for i in range(counter, 70):
    is_prime = True
    for j in range(2, i):
        remainder = i % j
        print("i is : ", i, "   - and j is : ", j, " and the remainder is : ", remainder)
        if remainder == 0:
            is_prime = False
            print("remainder = ", remainder,", so ", i, "is not a prime")
    if is_prime:
        total += i
    else:
        print(i, " is a prime")
print(total)

因此,如果您运行代码,它将首先说“ 50不是素数”,然后再说“ 50是素数”。我不明白。我仅在运行测试循环之前将is_prime BOOLEAN设置为True。在测试循环中,如果数字不是素数,则它将is_prime设置为False。因此,在我看来,is_prime不会设置回True(直到循环的下一次迭代开始之前),因此number(I)应该标识为“不是素数”。我在哪里错了?

python primes
1个回答
0
投票

这是逻辑...'

if is_prime:
    print(i, " is a prime")
    total += i
else:
    print(i, " is not a prime")
© www.soinside.com 2019 - 2024. All rights reserved.