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)。

相关主题