问题是:
编写一个Python函数来查找给定数字列表中的所有强数。 编写另一个函数来查找并返回数字的阶乘。用它来解决问题。 注意:0!=1个
到目前为止我尝试的代码:
def factorial(number):
sum1=0
temp=number
while(number):
i=1
f=1
r=number%10
while(i<=r):
f=f*i
i=i+1
sum1=sum1+f
number=number//10
return sum1
return temp
def find_strong_numbers(num_list):
for item in num_list:
for number in range(1,item+1):
if(sum1==temp):
print(number)
num_list=[145,375,100,2,10]
strong_num_list=find_strong_numbers(num_list)
print(strong_num_list)
预期输出:[145,2]
我面临的错误是:
名称错误:未定义名称“sum1”
导入数学
def阶乘(数字): 如果数字==0: 返回1 其他: 返回数*阶乘(数字-1)
def find\ U strong\ U numbers(数字列表): strongNumbersList=[] 对于数字列表中的项目: currentNumber=项目 数字=[] 当currentNumber>;0时: 数字.插入(0,当前编号%10) currentNumber=currentNumber//10 如果sum(map(factorial,digits))==项: 如果项==0: 打破 strong数字列表.append(项目) 返回strong数字列表
数字列表=[145375100,2,1040585,0]
strong\U num\U list=查找\U strong\U号码(num\U list)
打印(强数量列表)
相关问题 更多 >
编程相关推荐