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 isstrong_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, luegofactorial()
se llama a la función en el resto de la modificación temporal 10 y se la pasa a lafactorial
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 usandoappend()
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]