如何编写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
相关产品推荐
相关产品推荐

