Python 将50到70之间的所有素数相加-为什么我的代码不起作用?
代码: 因此,如果你运行代码,它会先说“50不是素数”,然后说“50是素数”。 我不明白。只有在运行测试循环之前,我才将is_prime布尔值设置为True。在测试循环期间,如果数字不是素数,它将is_prime设置为False。因此,在我看来,is_prime没有设置回True(直到循环的下一次迭代开始),因此数字(I)应该被标识为“nota prime”。Python 将50到70之间的所有素数相加-为什么我的代码不起作用?,python,primes,Python,Primes,代码: 因此,如果你运行代码,它会先说“50不是素数”,然后说“50是素数”。 我不明白。只有在运行测试循环之前,我才将is_prime布尔值设置为True。在测试循环期间,如果数字不是素数,它将is_prime设置为False。因此,在我看来,is_prime没有设置回True(直到循环的下一次迭代开始),因此数字(I)应该被标识为“nota prime”。 我哪里错了?这是逻辑。。。如果is prime为False,那么它就不是prime。你把那部分倒过来了 counter = 50 tot
我哪里错了?这是逻辑。。。如果is prime为False,那么它就不是prime。你把那部分倒过来了
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)
当余数==0时中断内部循环我尝试过,但不起作用…Owww dangit。。所以我的计算是正确的。我上次打印的声明是错误的。。太蠢了。。谢谢你指出这一点…-)
if is_prime:
print(i, " is a prime")
total += i
else:
print(i, " is not a prime")