Python アームストロング数

Python3 例

もしn桁の正の整数がその各桁の数字のn累乗の和であり、その場合、その数をアームストロング数と呼びます。例えば1^3 + 5^3 + 3^3 = 153。

1000 までのアームストロング数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。

次のコードは、ユーザーが入力した数字がアームストロング数であるかどうかを検出するために使用されます:

例(Python 3.0+)

# Filename : test.py # author by : www.example.com # Python ユーザーが入力した数字がアームストロング数かどうかを検出 # ユーザーが入力した数字を取得 num = int(input("数字を入力してください:")) # 変数 sum を初期化 sum = 0 # 指数 n = len(str(num)) # 検出 temp = num while temp > 0: digit = temp % 10 sum += digit ** n temp //= 10 # 結果を出力 if num == sum: print(num,"アームストロング数です") else: print(num,"アームストロング数ではありません")

上記のコードを実行すると、出力結果は次のようになります:

$ python3 test.py 
请输入一个数字: 345
345 不是阿姆斯特朗数

$ python3 test.py 
请输入一个数字: 153
153 是阿姆斯特朗数

$ python3 test.py 
请输入一个数字: 1634
1634 是阿姆斯特朗数

指定期間内のアームストロング数を取得する

例(Python 3.0+)

# Filename :test.py # author by : www.example.com # ユーザーが入力した数字を取得 lower = int(input("最小値:")) upper = int(input("最大値:")) for num in range(lower,upper + 1): # sum を初期化 sum = 0 # 指数 n = len(str(num)) # 検出 temp = num while temp > 0: digit = temp % 10 sum += digit ** n temp //= 10 if num == sum: print(num)

上記のコードを実行すると、出力結果は次のようになります:

最小值: 1
最大值: 10000
1
2
3
4
5
6
7
8
9
153
370
371
407
1634
8208
9474

上記の例では、1 から 10000 までのアームストロング数を出力しました。

Python3 例

その他の拡張