python練習 1 水仙花數 1

2021-08-11 05:26:07 字數 1034 閱讀 8702

也被稱為超完全數字不變數(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.使用迴圈來實現查詢所有...