跳到主要内容

Python 程序:在区间内找到阿姆斯特朗数

要理解这个示例,你需要了解以下Python编程主题的知识:

如果一个正整数等于它的各位数字的n次方之和,则称其为n阶阿姆斯壮数。

abcd... = an + bn + cn + dn + ...

例如,

153 = 1*1*1 + 5*5*5 + 3*3*3 // 153是一个阿姆斯壮数。

访问这个页面学习如何在Python中检查一个数是否为阿姆斯壮数

源代码

# 程序:检查一定区间内的阿姆斯壮数
lower = 100
upper = 2000

for num in range(lower, upper + 1):

# 数字的阶数
order = len(str(num))

# 初始化和
sum = 0

temp = num
while temp > 0:
digit = temp % 10
sum += digit ** order
temp //= 10

if num == sum:
print(num)

输出

153
370
371
407
1634

这里,我们在变量lower中设置了下限100,在变量upper中设置了上限2000。我们使用for循环迭代从变量lower到upper。在迭代中,lower的值增加1,并检查它是否是阿姆斯壮数。

你可以更改范围并通过更改变量lower和upper来测试。注意,为了程序正常工作,变量lower应小于upper。