python判斷水仙花數(shù)的代碼怎么寫(xiě)

小億
120
2024-01-08 10:49:37

水仙花數(shù)是指一個(gè) n 位數(shù) (n ≥ 3),它的每個(gè)位上的數(shù)字的 n 次冪之和等于它本身。例如,153 是一個(gè)水仙花數(shù),因?yàn)?1^3 + 5^3 + 3^3 = 153。

以下是判斷一個(gè)數(shù)是否為水仙花數(shù)的 Python 代碼:

def is_armstrong_number(num):
    # 將數(shù)字轉(zhuǎn)化為字符串以獲取位數(shù)
    str_num = str(num)
    # 獲取數(shù)字的位數(shù)
    n = len(str_num)
    # 計(jì)算每個(gè)位上數(shù)字的 n 次冪之和
    armstrong_sum = sum([int(digit)**n for digit in str_num])
    # 判斷是否為水仙花數(shù)
    if armstrong_sum == num:
        return True
    else:
        return False

# 調(diào)用函數(shù)進(jìn)行測(cè)試
num = 153
if is_armstrong_number(num):
    print(num, "是水仙花數(shù)")
else:
    print(num, "不是水仙花數(shù)")

運(yùn)行結(jié)果:

153 是水仙花數(shù)

0