📅  最后修改于: 2023-12-03 14:46:46.449000             🧑  作者: Mango
强数字是指其各个位数的阶乘之和等于它本身的数字。比如 145 为强数字,因为 1! +4! + 5! = 145。
本文介绍如何用 Python 在给定列表中查找所有的强数字。
我们可以写一个函数来判断一个数是否为强数字,然后在给定列表中遍历每个数字并判断其是否为强数字,最后返回所有符合条件的数字。
判断一个数字是否为强数字的过程如下:
import math
def is_strong_num(num):
# 将数字转化为字符串
str_num = str(num)
# 初始化阶乘和为0
fact_sum = 0
# 遍历字符串中的每个字符
for char in str_num:
# 将字符转化为数字并计算其阶乘
fact_sum += math.factorial(int(char))
# 判断阶乘之和是否等于原始数字
if fact_sum == num:
return True
else:
return False
def find_strong_nums(lst):
# 初始化结果列表为空
strong_nums = []
# 遍历列表中的每个数
for num in lst:
# 如果这个数是强数字,则加入结果列表中
if is_strong_num(num):
strong_nums.append(num)
# 返回结果列表
return strong_nums
lst = [145, 40585, 15, 23, 1450]
strong_nums = find_strong_nums(lst)
print(strong_nums) # 输出 [145, 40585]
本文中介绍了如何用 Python 实现查找给定列表中所有的强数字。代码中的 is_strong_num 函数用于判断一个数字是否为强数字,而 find_strong_nums 函数则用于在给定列表中查找所有的强数字。