阿姆斯特朗数指的是一个$n$位数,它的每个数字的$n$次方之和正好等于它本身。例如,153是阿姆斯特朗数,因为$1^3 + 5^3 + 3^3 = 153$。
我们可以通过以下函数来检查一个数字是否为阿姆斯特朗数:
def is_armstrong_number(number):
# 将数字转换为字符串以便于操作
num_str = str(number)
# 计算数字的位数
n = len(num_str)
# 将每个数字的n次方相加
sum = 0
for digit in num_str:
sum += int(digit) ** n
# 如果结果等于原始数字,则它是阿姆斯特朗数
return sum == number
在这个函数中,我们首先将传入的数字转换为字符串以便于操作。然后,我们计算这个数字的位数$n$,并循环遍历字符串中的每个数字,并将它的$n$次方相加。最后,我们将计算得到的总和与原始数字进行比较,如果它们相等,则该数字是阿姆斯特朗数。
下面是一些测试这个函数的示例:
assert is_armstrong_number(153) == True
assert is_armstrong_number(9474) == True
assert is_armstrong_number(54748) == True
assert is_armstrong_number(407) == True
assert is_armstrong_number(1634) == True
assert is_armstrong_number(8208) == True
assert is_armstrong_number(9475) == False
assert is_armstrong_number(121) == False
在这些测试中,我们将一些已知的阿姆斯特朗数和一些不是