所謂 Armstrong number 指的是一個 n 位數的整數,它的所有位數的 n 次方和恰好等於自己。

如;1634 = 1^4+6^4+3^4+4^

請依題目需求在一定範圍內找出該範圍內的所有 armstrong numbers.

輸入說明
輸入共一行包含兩個數字 n, m(n<m, n>0, m<=1000000),代表所有尋找 armstrong number 的範圍

輸出說明
將所有範圍內的 armstrong number 依序由小到大輸出,如果沒有找到請輸出 none.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 讀取輸入範圍
first, end = map(int, input().split())

# 檢查是否有輸出
no_output_check = 0

# 在範圍內進行迭代
for i in range(first, end + 1, 1):
temp = 0
i_temp = i
# 獲取數字長度
length = len(str(i))

# 迭代數字的每一位
for j in range(0, length, 1):
# 將每一位數的 length 次方加到 temp
temp = temp + (i_temp % 10) ** length
# 將 i_temp 除以 10,往下一位數
i_temp = i_temp // 10

# 檢查 temp 是否等於 i,如果是,則輸出
if temp == i:
print(i, end=' ')
no_output_check += 1

# 如果沒有輸出,則顯示 "none"
if no_output_check == 0:
print('none')

a040. 阿姆斯壯數



作者: 微風