Python 阿姆斯特朗數位檢查器

驗證一個數字是否是阿姆斯壯(自戀)數字,其中它自己的數字總和的位數次方等於數字本身。

在編輯器中嘗試

概述

阿姆斯壯數(也稱為自戀數或過完美數字不變數)是一個 n 位數字,等於其數字的 n 次方之和。

例如,153 是 3 位阿姆斯壯數,因為 1^3 + 5^3 + 3^3 = 153。同樣,9474 是 4 位元阿姆斯壯數,因為 9^4 + 4^4 + 7^4 + 4^4 = 9474。

我們在 Python 中實現這一點,方法是將整數轉換為字串,以便輕鬆計算位數並迭代每個數字。

程式碼和執行輸出

檢查一系列數字以確定它們是否符合阿姆斯特朗數的數學標準。

def is_armstrong(num):
    num_str = str(num)
    n = len(num_str)
    digit_sum = sum(int(digit) ** n for digit in num_str)
    return digit_sum == num

test_nums = [153, 370, 9474, 123]
for val in test_nums:
    result = "Armstrong" if is_armstrong(val) else "Not Armstrong"
    print(f"{val:4d} -> {result}")
端子輸出
 153 -> Armstrong
 370 -> Armstrong
9474 -> Armstrong
 123 -> Not Armstrong

逐步實施

  • 數論研究和邏輯練習
  • 課堂數學程式設計作業
  • 休閒節目

常見問題解答

所有的數字都是阿姆斯壯數嗎?

是的。任何一位數字的 1 次方都等於其自身(例如,5^1 = 5)。

相關主題