张芷铭的个人博客

阿姆斯特朗数(水仙花数):n 位数等于其各位数字的 n 次幂之和,如 153 = 1³ + 5³ + 3³。

定义

n 位数若等于各位数字的 n 次幂之和,称为阿姆斯特朗数。

示例

位数验证
3 位1531³ + 5³ + 3³ = 153 ✓
4 位16341⁴ + 6⁴ + 3⁴ + 4⁴ = 1634 ✓

性质

  • 自幂数的一种,用自身数字的数学性质描述自身
  • 不同位数下数量有限

判断方法

  1. 计算数字位数 n
  2. 计算各位数字 n 次幂之和
  3. 比较和与原数

Python 实现

1
2
3
4
5
6
7
8
def is_armstrong(number):
    digits = str(number)
    n = len(digits)
    sum_of_powers = sum(int(d) ** n for digit in digits)
    return sum_of_powers == number

print(is_armstrong(153))  # True
print(is_armstrong(123))  # False

Comments