水仙花数(Narcissistic Number)是指一个3 位数,其每个位上数字的立方和等于它本身。
例如:153 = 1^3 + 5^3 + 3^3
示例代码:
# 定义判断自幂数(水仙花数)的函数,n为待判断的数字
def is_narcissistic(n):
# 将数字转为字符串,方便逐位取出每一位数字
s = str(n)
# 获取数字的位数(几位数)
length = len(s)
# 遍历每一位数字,转为整数后求其【位数次方】,再累加求和
total = sum(int(digit)**length for digit in s)
# 各位数字的位数次方和 是否等于原数,是则返回True,否则False
return total == n
if __name__ == "__main__":
print(is_narcissistic(153)) # True 3位水仙花数
print(is_narcissistic(9474)) # True 4位水仙花数运行结果:
True
True