如果一个数的阶乘之和等于这个数本身,那么这个数就是强数。
例如:145=1!+4个!+5个!在
为此,我用python编写了以下代码:
import math
def strong_num():
return [x for x in range(1,1000) if x==int(reduce(lambda p,q:math.factorial(int(p))+math.factorial(int(q)),str(x)))]
print strong_num()
但是翻译再也回不来了??
这个代码有什么问题?在
Tags:
您的
reduce
输入错误,不应计算p
的阶乘。事实上,只使用sum
:^{} 函数可以看作是:
^{pr2}$例如,如果x==145,那么您的
reduce
部分将计算解释器很可能无法完成,因为需要计算一个非常大的数的阶乘(考虑(2×9!)!…)在
如果仍需要保留
reduce
,则应将其更改为:strong数是指位数的阶乘和等于原始数的那些数。 所以,这里有一个简单的程序来查找python列表中的强数。在
现在,如果不想传递一个列表,只需从函数strong_number中删除for循环。 快乐学习!!!在
什么是强数?
强数是那些位数的阶乘和等于原始数的数。 例如:145是强数。自从,1!+4个!+5个!=145
相关问题 更多 >
编程相关推荐