📌  相关文章
📜  Python程序在给定列表中查找所有强数字

📅  最后修改于: 2022-05-13 01:55:48.362000             🧑  作者: Mango

Python程序在给定列表中查找所有强数字

给定一个列表,编写一个Python程序来查找给定数字列表中的所有强数字。

强数是等于其数字的阶乘之和的数字。

例子:

Input : [1, 2, 5, 145, 654, 34] 
Output : [1, 2, 145]

Input : [15, 58, 75, 675, 145, 2]
Output : [145, 2]

解释 :

  • 我们在这里定义了 2 个函数:第一个是factorial() ,第二个是strong_number()
  • 一旦调用了strong_number() ,列表就会传递给函数并存储在形式参数列表中。
  • For 循环迭代列表中的每个元素, temp是一个临时变量,对其进行计算,然后在temp mod 10的其余部分调用factorial()函数并将其传递给factorial函数。
  • 现在当temp等于 0 时,它退出 while 循环并检查 sum 是否等于 x。如果为True ,则使用append()函数将其添加到列表中,该函数为列表预定义并用于在列表中添加元素,如果没有强数字,则它将返回一个空列表。

下面是Python的实现:

# Python program to find all 
# Strong Numbers in given list
def factorial(number):
    if(number == 0 or number == 1):
        fact = 1
    else:
        fact = number * factorial(number - 1)
    return fact
  
def strong_number(list):
    new_list =[]
  
    for x in list:
        temp = x
        sum = 0
        while(temp):
            rem = temp % 10
            sum += factorial(rem)
            temp = temp // 10
        if(sum == x):
            new_list.append(x)
        else:
            pass  
              
    return new_list
          
# Driver Code
val_list = [1, 2, 5, 145, 654, 34]
strong_num_list = strong_number(val_list)
print(strong_num_list)
输出:
[1, 2, 145]