求 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:
一个小错误:
总计 += 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_)
所以我写了一个程序来计算一个数中所有素数的和。
#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:
一个小错误: 总计 += 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_)