如果一個n位正整數(shù)等于其各位數(shù)字的n次方之和,則稱該數(shù)為阿姆斯特朗數(shù)寥假。 例如1^3 + 5^3 + 3^3 = 153蛋欣。
1000以內(nèi)的阿姆斯特朗數(shù): 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。
以下代碼用于檢測用戶輸入的數(shù)字是否為阿姆斯特朗數(shù):
Python 檢測用戶輸入的數(shù)字是否為阿姆斯特朗數(shù)
獲取用戶輸入的數(shù)字
num = int(input("請輸入一個數(shù)字: "))
初始化變量 sum
sum = 0
指數(shù)
n = len(str(num))
檢測
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** n
temp //= 10
輸出結(jié)果
if num == sum:
print(num,"是阿姆斯特朗數(shù)")
else:
print(num,"不是阿姆斯特朗數(shù)")
執(zhí)行以上代碼輸出結(jié)果為:
請輸入一個數(shù)字: 345
345 不是阿姆斯特朗數(shù)
請輸入一個數(shù)字: 153
153 是阿姆斯特朗數(shù)
請輸入一個數(shù)字: 1634
1634 是阿姆斯特朗數(shù)
獲取指定期間內(nèi)的阿姆斯特朗數(shù)
獲取用戶輸入數(shù)字
lower = int(input("最小值: "))
upper = int(input("最大值: "))
for num in range(lower,upper + 1):
# 初始化 sum
sum = 0
指數(shù)
n = len(str(num))
檢測
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** n
temp //= 10
if num == sum:
print(num)
執(zhí)行以上代碼輸出結(jié)果為:
最小值: 1
最大值: 10000
1
2
3
4
5
6
7
8
9
153
370
371
407
1634
8208
9474
以上實例中我們輸出了 1 到 10000 之間的阿姆斯特朗數(shù)。