自冪數是指一個數如果各個位數上的數字的n次方之和等于它本身,那么這個數就是自冪數。在Python中,我們可以寫一個函數來判斷一個數是否為自冪數。
def isNarcissusNum(num, n): s = str(num) r = 0 for c in s: r += int(c) ** n return r == num
上面的代碼中,函數isNarcissusNum接受兩個參數,分別是要判斷的數字num和冪n。首先將num轉化為字符串,然后對字符串中的每一位進行冪運算,并將結果累加到變量r中。最后比較r和num是否相等,相等則返回True,否則返回False。
可以使用下面的代碼測試一下這個函數:
for i in range(1000): if isNarcissusNum(i, 3): print(i)
上面的代碼會輸出所有的三位自冪數,即153和370和371和407。