繁体   English   中英

在 python 中查找素数之和

[英]Finding sum of prime digits in python

所以我写了一个程序来计算一个数字中所有素数的总和。

#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)

但它不起作用。 这是一个逻辑错误,但我无法弄清楚。 我在这里没有找到这个问题的答案,我不想看到解决方案,因为我想知道我这边的错误是什么。

1 不是素数。 你应该考虑到这一点

if int(int(number%10)%j)==0:

一个小错误:total += int(number%10)

不要使用

if is_prime == True:

请用

if is_prime:

使您的代码更加pythonic。

由于素数是预先知道的,因此更容易遍历数字的每个数字并添加素数数字

number = input("Enter a number")
prime_digits={'2','3','5','7'}
sum_ = 0

for digit in number:
    if digit in prime_digits:
        sum_+= int(digit)
print('sum of prime digits: ',sum_)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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