#Python 阿姆斯壯數
#1634=1^4+6^4+3^4+4^4
“””
TQC數字反轉跟
位數加總
都是誘導把input()當成數字
跟本題的阿姆斯壯數一樣
用list會比較好處理
轉換成字符串並使用 len()
函數來確定一個數字的位數是一個有效且簡單的方法。當您將一個數字轉換成字符串,每個字符代表該數字的一位。使用 len()
函數可以直接獲得這個字符串的長度,也就是原始數字的位數。這個方法不僅直觀,而且在編寫代碼時非常方便。
“””
a = eval(input()) #輸入20
b = eval(input()) #輸入2000
L=[]
for i in range(a,b+1):
str1=str(i)
armLst=list(str1)
armLstdigit=[eval(j) for j in armLst]
length=len(armLst)
sum1=0
for k in range(length):
sum1+=armLstdigit[k]**length
if sum1 == eval(str1):L.append(str1)
print(L)
Ldigit=[eval(i) for i in L]
for i in range(len(Ldigit)):
print(Ldigit[i],end=” “)
23/11/18補充
第二版考題:
輸出範例:
code:
# -*- coding: utf-8 -*-
"""
Created on Sat Nov 18 20:22:06 2023
@author: SavingKing
"""
def judge_armstrong(int_arg):
strr = str(int_arg)
len1 = len(strr)
# lis_str = list(strr)
lis_int = [ eval(i) for i in strr ]
sum1=0
for j in lis_int:
sum1 += j**len1
if sum1 == int_arg:
judge=True
else:
judge=False
return judge
def compute(n):
lis_armstrong = []
for i in range(1,n):
if judge_armstrong(i) == True:
lis_armstrong.append(i)
return lis_armstrong,sum(lis_armstrong)
if __name__ == "__main__":
lis_armstrong,sum1 =compute(999)
for num in lis_armstrong:
print(num)
print(sum1)
輸出結果:
推薦hahow線上學習python: https://igrape.net/30afN