Python实现阿姆斯特朗数(自恋数)检查与查找详解

栗子
栗子
发布时间:2026-10-14| 4人浏览过
原创

本文详解如何利用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实现阿姆斯特朗数的内容,请搜索本站历史文章或继续浏览后续相关文章。感谢大家的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。