Python 阿姆斯壯數
2 min readJul 4, 2019
筆者有用C++來解高中生解題系統上的 高中生程式解題系統:阿姆斯壯數 Armstrong number
(題目連結: https://zerojudge.tw/ShowProblem?problemid=a040) 一題。
本篇換用 Python 程式語言來解,而當時所寫的 C++ 為先建立好阿姆斯壯數的對應表,算有點偷吃步,這次用演算法來解囉。首先要知道數字是幾位數,可將數字轉成字串後,在呼叫計算字串長度函數 order = len(str(x)) ,接著就是將每位數的 order 次方加總(s),並檢查是否與原來數字相等。
Python程式碼:
import sys
def isArm (x):
order = len(str(x))
temp = x
s = 0
while (temp != 0):
r = temp % 10
s = s + (r ** order)
temp = temp // 10
return (s == x)
for s in sys.stdin:
n, m = map(int, s.split())
flag = False
for i in range(n, m):
if isArm(i):
flag = True
print(str(i), end = " ")
if flag == False:
print("none")
else:
print()
Originally published at https://yunlinsong.blogspot.com.