a040: 阿姆斯壯數
#a040: 阿姆斯壯數
'''
所謂 Armstrong number 指的是一個 n 位數的整數,它的所有位數的 n 次方和恰好等於自己。
如;1634 = 1^4 + 6^4 + 3^4 + 4^4 = 1 + 1296 + 81 + 256 = 1634
請依題目需求在一定範圍內找出該範圍內的所有 armstrong numbers.
輸入說明
輸入共一行包含兩個數字n, m(n<m, n>0, m<=1000000),
代表所有尋找 armstrong number 的範圍
輸出說明
將所有範圍內的 armstrong number 依序由小到大輸出,如果沒有找到請輸出 none.
範例輸入 #1
100 999
範例輸出 #1
153 370 371 407
範例輸入 #2
10 99
範例輸出 #2
none
'''
def Armstrong(originalNumber):
number=originalNumber
result=0
while (originalNumber != 0):
remainder = int(originalNumber%10)
result = int (result) + int (remainder*remainder*remainder)
originalNumber = int(originalNumber/10)
if(result == number) :
#print('%d 是 Armstrong 数' %(number))
a=1
return (a)
else:
#print('%d 不是 Armstrong 数' %(number))
a=0
return (a)
print('求在一定範圍內找出該範圍內的所有 armstrong numbers.')
n,m = map(int,input('輸入2個數字n, m(n<m, n>0, m<=1000000) --->').split())
for i in range (n,m):
res=Armstrong(i)
if (res==1):
print(i ,end=' ')
#print('Yes')
else:
#print('No')
print(end='')
>>> %Run a040.py
求在一定範圍內找出該範圍內的所有 armstrong numbers.
輸入2個數字n, m(n<m, n>0, m<=1000000) --->10 200
153
>>> %Run a040.py
求在一定範圍內找出該範圍內的所有 armstrong numbers.
輸入2個數字n, m(n<m, n>0, m<=1000000) --->100 999
153 370 371 407
>>> %Run a040.py
求在一定範圍內找出該範圍內的所有 armstrong numbers.
輸入2個數字n, m(n<m, n>0, m<=1000000) --->10 99
>>>
沒有留言:
張貼留言