代码:
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)应该标识为“不是素数”。我在哪里错了?
这是逻辑...'
if is_prime:
print(i, " is a prime")
total += i
else:
print(i, " is not a prime")