Pythonで水仙花数を判定するコードはどのように書けばいいですか。
水仙花数とは、3桁以上の数(n ≥ 3)で、それぞれの桁の数字をn乗した合計がその数自身と同じ値であるものを指します。例えば、153は水仙花数であり、1^3 + 5^3 + 3^3 = 153となります。
このPythonコードは、数がアームストロング数かどうかを判断します。
def is_armstrong_number(num):
# 将数字转化为字符串以获取位数
str_num = str(num)
# 获取数字的位数
n = len(str_num)
# 计算每个位上数字的 n 次幂之和
armstrong_sum = sum([int(digit)**n for digit in str_num])
# 判断是否为水仙花数
if armstrong_sum == num:
return True
else:
return False
# 调用函数进行测试
num = 153
if is_armstrong_number(num):
print(num, "是水仙花数")
else:
print(num, "不是水仙花数")
実行結果:
153 是水仙花数