Python实现阿姆斯特朗数(自恋数)检查与查找详解
本文详解如何利用Python检查阿姆斯特朗数(自恋数)。通过三个具体案例,分别演示了3位数字、任意n位数字的阿姆斯特朗数判断,以及在指定整数区间内查找所有阿姆斯特朗数的方法。包含完整代码解析与运行结果,帮助读者深入理解Python中的循环、取模及幂运算应用。
一、什么是阿姆斯特朗数?
若一个正整数等于其各位数字的立方和,则该数被称为阿姆斯特朗数,也被称为自恋性数。
对于任意位数的正整数,若其等于各位数字的n次方(n为位数)之和,则称为阿姆斯特朗阶数。
示例:
abcd... = an + bn + cn + dn + ...
对于3位数的阿姆斯特朗数字,其各位数字的立方和必须等于该数字本身。
例如:
153 = 1*1*1 + 5*5*5 + 3*3*3 // 153是一个阿姆斯特朗数。
二、案例
1. 检查3位数字是否为阿姆斯特朗数
示例:
# 检查该数字是否为阿姆斯壮数字的Python程序
# 接受用户的输入
num = int(input("输入一个数字: "))
# 初始化sum
sum = 0
# 求出每个数字的立方和
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
# 显示结果
if num == sum:
print(num,"是阿姆斯特朗数")
else:
print(num,"不是阿姆斯特朗数")
输出1

输出2

代码解析:
程序首先接收用户输入的一个数字,随后计算该数字各位的立方和,以判断其是否为阿姆斯特朗数。
初始化总和为0,利用模运算符(%)提取每一位数字。通过数字除以10的余数获取最后一位,再使用指数运算符计算其立方值。
最后,将计算得到的总和与原始数字进行比对。若两者相等,则判定该数为阿姆斯特朗数。
2. 检查n位数字是否为阿姆斯特朗数
示例:
num = 1634
# 将num变量更改为string
# 并计算出长度(位数)
order = len(str(num))
# 初始化 sum
sum = 0
# 求出每个数字的立方和
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** order
temp //= 10
# 显示结果
if num == sum:
print(num, "是阿姆斯特朗数")
else:
print(num, "不是阿姆斯特朗数")
运行结果:

注:
读者可修改源代码中num变量的值,重新运行代码以验证不同数字的结果。
3. 在整数区间内查找阿姆斯特朗数
示例:
# Python程序在整数中查找阿姆斯特朗数
lower = 100
upper = 2000
for num in range(lower, upper + 1):
# order 个数
order = len(str(num))
# 初始化 sum
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** order
temp //= 10
if num == sum:
print(num)
运行结果:

注:
代码中设置变量lower为下限100,变量upper为上限2000。
使用for循环从变量lower迭代至upper。在每次迭代中,lower的值递增1,并检查当前值是否为阿姆斯特朗数。
用户可修改范围,通过调整变量lower和upper的值进行测试。注意,lower必须小于upper,程序才能正常运行。
三、总结
本文基于Python基础,介绍了阿姆斯特朗数的定义及判断方法。通过检查3位数字、n位数字以及在整数区间内查找阿姆斯特朗数三个案例,结合代码演示与效果展示,进行了详细分析。
使用Python语言编写示例,旨在帮助读者更好地理解相关概念。针对实际项目中可能遇到的难点,提供了有效的解决方案供参考。 代码逻辑清晰,希望能为读者的学习提供有益帮助。
至此,关于利用Python实现阿姆斯特朗数检查的文章介绍完毕。如需了解更多Python实现阿姆斯特朗数的内容,请搜索本站历史文章或继续浏览后续相关文章。感谢大家的支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









