Python 阿姆斯特朗數(shù)
如果一個n位正整數(shù)等于其各位數(shù)字的n次方之和,則稱該數(shù)為阿姆斯特朗數(shù)。 例如1^3 + 5^3 + 3^3 = 153。
1000以內的阿姆斯特朗數(shù): 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。
以下代碼用于檢測用戶輸入的數(shù)字是否為阿姆斯特朗數(shù):
# Filename : test.py # author by : m.o2fo.com # 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 # 輸出結果 if num == sum: print(num,"是阿姆斯特朗數(shù)") else: print(num,"不是阿姆斯特朗數(shù)")
執(zhí)行以上代碼輸出結果為:
$ python3 test.py 請輸入一個數(shù)字: 345 345 不是阿姆斯特朗數(shù) $ python3 test.py 請輸入一個數(shù)字: 153 153 是阿姆斯特朗數(shù) $ python3 test.py 請輸入一個數(shù)字: 1634 1634 是阿姆斯特朗數(shù)
獲取指定期間內的阿姆斯特朗數(shù)
# Filename :test.py # author by : m.o2fo.com # 獲取用戶輸入數(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í)行以上代碼輸出結果為:
最小值: 1 最大值: 10000 1 2 3 4 5 6 7 8 9 153 370 371 407 1634 8208 9474
以上實例中我們輸出了 1 到 10000 之間的阿姆斯特朗數(shù)。
更多建議: