You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Python程序判断输入数字是否为阿姆斯特朗数

Python判断阿姆斯特朗数实现

核心判断逻辑

阿姆斯特朗数的定义是:对于一个n位正整数,其每一位数字的n次幂之和等于数字本身。后续实现按以下步骤走即可:

  • 提前保存用户输入的原始数值,避免后续运算修改数值后无法做结果对比
  • 初始化幂和累加变量为0,用临时副本存储待拆解的数字,避免修改原始值
  • 循环拆解数字的每一位:
    • 对临时数字取模10,得到当前最后一位的数值
    • 计算该位数值的「数字总位数」次幂,累加到幂和变量中
    • 将临时数字整除10,移除已经计算过的最后一位
  • 循环结束后,对比幂和与原始输入值,相等则为阿姆斯特朗数,否则不是

补全后的完整代码

注意你原有代码中Counting函数内部的语句缺少缩进,Python对缩进要求严格,补全后可直接运行:

def Counting(number):
    count = 0
    while(number > 0):
        number = number // 10
        count = count + 1
    return count

number = int(input("Please Enter any number:"))
count = Counting(number)

# 后续判断逻辑
temp = number  # 用临时变量存储待拆解的数字,保留原始number做对比
sum_pow = 0
while temp > 0:
    digit = temp % 10  # 取最后一位数字
    sum_pow += digit ** count  # 计算该位的count次幂累加
    temp = temp // 10  # 移除最后一位

if sum_pow == number:
    print(f"{number} 是阿姆斯特朗数")
else:
    print(f"{number} 不是阿姆斯特朗数")

测试示例

  • 输入153:3位数字,1³+5³+3³=153,输出判定为阿姆斯特朗数
  • 输入9474:4位数字,9⁴+4⁴+7⁴+4⁴=9474,输出判定为阿姆斯特朗数
  • 输入123:3位数字,1³+2³+3³=36≠123,输出判定为不是阿姆斯特朗数

注意:如果需要支持0、负数的判定,可以额外加前置判断,目前常规阿姆斯特朗数入门判定场景只针对正整数。

内容的提问来源于stack exchange,提问作者Ekaansh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 13:19:06