Programa de Python para encontrar todos los números fuertes en la lista dada

Dada una lista, escriba un programa en Python para encontrar todos los números Fuertes en una lista dada de números.

Un número fuerte es un número que es igual a la suma del factorial de sus dígitos.

Ejemplos:

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

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

Explicación :

  • Definimos 2 funciones aquí: First is factorial()y second is strong_number().
  • Tan pronto como strong_number()se llama, la lista se pasa a la función y se almacena en la lista de argumentos formales.
  • El ciclo for itera para cada elemento en la lista, temp es una variable temporal en la que se realiza el cálculo, luego factorial()se llama a la función en el resto de la modificación temporal 10 y se la pasa a la factorial función.
  • Ahora, cuando temp es igual a 0, sale del bucle while y comprueba si la suma es igual ax o no. Si es Verdadero , se agrega en la lista usando append()la función que está predefinida para la lista y se usa para agregar elementos en la lista y, si no hay un número fuerte, devolverá una lista vacía.

A continuación se muestra la implementación de 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)
Producción:

[1, 2, 145]

Publicación traducida automáticamente

Artículo escrito por Skandh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *