Python阶乘和

2024-06-02 07:46:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个程序来检查每个数字是否等于其各个数字的阶乘和。由于一些我无法理解的原因,它无法将任何值添加到列表中,如果我在每个实例之后打印summated变量,它将显示summated等于0。有人能帮忙吗?在

import math

x = 2
y = 0
summed = 0
listed = []

while x < 10000000:
        x += 1
        summed = 0
        xString = str(x)
        xLength = len(xString)
        while y < xLength:
                summed += math.factorial(int(xString[y]))
                y += 1
        if (x == summed):
                listed.append(x)

y = 0
summed = 0

listLength = len(listed)

while y < listLength:
        summed += listed[y]
        y += 1

print(listed)
print(summed)

Tags: 实例程序列表len原因数字mathprint
3条回答

在字符串上循环的更好方法如下:

xString = str(x)
for c in xString:
    summed += math.factorial(int(c))

在最后的名单上:

^{pr2}$

那么你根本不需要y。在

您需要在while循环中设置y = 0

没关系,我注意到在每个实例结束时都没有重置y值。在

y = 0

就这样。在

相关问题 更多 >