跳到主要内容

Python 程序:检查阿姆斯特朗数

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

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

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

在三位数的阿姆斯壮数中,每位数字的立方和等于该数本身。例如:

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

源代码:检查三位数阿姆斯壮数

# Python程序:检查数字是否为阿姆斯壮数
# 从用户处获取输入
num = int(input("输入一个数字: "))

# 初始化求和
sum = 0

# 计算每个数字的立方和
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10

# 显示结果
if num == sum:
print(num,"是一个阿姆斯壮数")
else:
print(num,"不是一个阿姆斯壮数")

输出1

输入一个数字: 663
663 不是一个阿姆斯壮数

输出2

输入一个数字: 407
407 是一个阿姆斯壮数

这里,我们向用户请求一个数字并检查它是否是阿姆斯壮数。

我们需要计算每个数字的立方和。因此,我们将求和初始化为0,并使用取模运算符 %获得每个数字。当一个数除以10时的余数就是该数的最后一位。我们使用幂运算符计算立方。

最后,我们将求和与原始数字进行比较,如果它们相等,则判断为阿姆斯壮数。

源代码:检查n位数的阿姆斯壮数

num = 1634

# 将num变量转换为字符串,
# 并计算长度(数字个数)
order = len(str(num))

# 初始化求和
sum = 0

# 计算每个数字的n次方和
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** order
temp //= 10

# 显示结果
if num == sum:
print(num,"是一个阿姆斯壮数")
else:
print(num,"不是一个阿姆斯壮数")

你可以更改源代码中的num值并再次运行以测试它。