【发布时间】:2020-12-28 06:56:36
【问题描述】:
所以我写了一个程序来计算一个数字中所有素数的总和。
#python program to print the sum of prime digits
number = int(input("Enter a number"))
n = number
number_of_digits = 0
is_prime = True
total = 0
while n>0:
number_of_digits+=1
n = int(n/10)
for i in range(1, number_of_digits+1):
for j in range(2, int(number%10)):
if int(int(number%10)%j)==0:
is_prime = False
break
if is_prime == True:
total = int(number%10)
is_prime = True
number = int(number/10)
print(total)
但它不起作用。这是一个逻辑错误,但我无法弄清楚。我在这里没有找到这个问题的答案,我不想看到解决方案,因为我想知道我的错误是什么。
【问题讨论】:
-
糟糕,一个小错误。而不是
total = int(number%10),应该是total += int(number%10) -
质数不是预先知道的吗——2、3、5、7?没有必要每次都根据第一原理重新计算一个数字是否是素数。