也被稱為超完全數字不變數(pluperfect digital invariant, ppdi)、自戀數、自冪數、阿姆斯壯數或阿姆斯特朗數(armstrong number),水仙花數是指乙個 n 位數(n≥3 ),它的每個位上的數字的 n 次冪之和等於它本身(例如:1^3 + 5^3+ 3^3 = 153)。
嚴格意義上講,3位的自冪數叫做水仙花數,其他位數的有別的名字,誰給起的名字啊??
3位的自冪數可以採用求餘數和求整除的方法實現,而位數提公升以後就顯得很麻煩。
採用map函式將數字轉換為列表後會顯得簡單一些。
附上程式:
n = int(input('input a number:'))#輸入位數
count = 0
#該位數中自冪數的計數
while n > 2: #一位數本身就是自己的1次方,2位數不存在自冪數,所以略掉
for a in range(10 ** (n - 1), 10 ** n):#數字將在10 ** (n - 1)到10 ** n)的範圍內遍歷
# print ('a=',a)
a_list = list(map(int, str(a)))#用map函式將數字a的各個數字其取出來,並生成列表。
# print('a_list=',a_list)
sum = 0
#初始化各位數冪只和
for v in a_list:
sum = sum + v ** n #求各位數冪只和
# print('sum= ',sum)
if a == sum:#當數字等於sum時,顯示sum
count = count + 1
#計數加1
print(count, sum)
break
#當a遍歷完後,結束while迴圈
else:
print('the number must larger than 2!')#當輸入的位數小與2時,顯示該資訊
執行正常,,但很花時間。。。
今天到此為止,改天繼續更新。。。,
Python3基礎練習1 水仙花數
題目 列印出所有的 水仙花數 定義 水仙花數 是指乙個三位數,其各位數字立方和等於該數本身。示例 153是乙個 水仙花數 因為153 1的三次方 5的三次方 3的三次方。答案 153,370,371,407 分析1 假設三位數abc是個水仙花數,則 a 3 b 3 c 3 abc for n in ...
Python練習筆記 水仙花數
解題思路 段 函式小結 春天是鮮花的季節,水仙花就是其中最迷人的代表,數學上有個水仙花數,他是這樣定義的 水仙花數 是指乙個三位數,它的各位數字的立方和等於其本身,比如 153 1 3 5 3 3 3。現在要求輸出所有在m和n範圍內的水仙花數。輸入資料有多組,每組佔一行,包括兩個整數m和n 100 ...
1 Daffodil 水仙花數
1.需求 輸出所有的 水仙花數 2.名詞解析 所謂 水仙花數 是指這樣的乙個三位數 其各位數字的立方和等於該數本身。例如 371是乙個 水仙花數 371 3 3 7 3 1 3 3.分析 1.定義三個變數分別儲存百位 十位 個位 2.判斷其各位數字的立方和是否等於該數本身 3.使用迴圈來實現查詢所有...