用Python编程语言来实现阿姆斯特朗数的检查

##一、什么是阿姆斯特朗数?

如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋性数)。

一个正整数称为阿姆斯特朗阶数。

例:

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

如果是3位的阿姆斯特朗数字,则每个数字的立方和等于该数字本身。 例如:

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

##二、案例

1. 检查阿姆斯特朗数(3位数字)

例 :

1# 检查该数字是否为阿姆斯壮数字的Python程序 2 3# 接受用户的输入 4num = int(input("输入一个数字: ")) 5 6# 初始化sum 7sum = 0 8 9# 求出每个数字的立方和 10temp = num 11while temp > 0: 12 digit = temp % 10 13 sum += digit ** 3 14 temp //= 10 15 16# 显示结果 17if num == sum: 18 print(num,"是阿姆斯特朗数") 19else: 20 print(num,"不是阿姆斯特朗数")

输出1

输出2

代码解析:

要求用户输入一个数字,然后检查它是否是一个阿姆斯特朗数字,需要计算每个数字的立方和。

因此,将总和初始化为0,并使用**模运算符(%)**获得每个数字。将数字除以10所得的余数是该数字的最后一位。使用指数运算符获取多维数据集。

最后,将总和与原始数字进行比较,得出结论,如果相等,则是阿姆斯特朗数。

2. 检查是阿姆斯特朗的n位数字

例:

1num = 1634 2 3# 将num变量更改为string 4# 并计算出长度(位数) 5order = len(str(num)) 6 7# 初始化 sum 8sum = 0 9 10# 求出每个数字的立方和 11temp = num 12while temp > 0: 13 digit = temp % 10 14 sum += digit ** order 15 temp //= 10 16 17# 显示结果 18if num == sum: 19 print(num, "是阿姆斯特朗数") 20else: 21 print(num, "不是阿姆斯特朗数")

运行结果:

注:

读者可以更改源代码中num的值,然后再次运行以对其进行测试。

3. 在整数中查找阿姆斯特朗数

例:

1# Python程序在整数中查找阿姆斯特朗数 2 3lower = 100 4upper = 2000 5 6for num in range(lower, upper + 1): 7 8 # order 个数 9 order = len(str(num)) 10 11 # 初始化 sum 12 sum = 0 13 14 temp = num 15 while temp > 0: 16 digit = temp % 10 17 sum += digit ** order 18 temp //= 10 19 20 if num == sum: 21 print(num)

运行结果:

注:

在变量lower中设置了下限100,在变量upper中设置了上限2000。

使用了for循环来从变量lower到upper进行迭代。在迭代中,lower的值增加1,并检查它是否为阿姆斯特朗数。

可以更改范围并通过更改变量lower和upper进行测试。该变量lower应小于upper此程序才能正常运行。

三、总结

本文基于Python基础,介绍了什么是阿姆斯特朗数,以及如何去判断,检查阿姆斯特朗数,检查是阿姆斯特朗的n位数字,在整数中查找阿姆斯特朗数。都通过案例的分析,代码的演示,效果的展示,进行有效的分析。

使用Python语言,能够让读者更好的理解。在实际项目中遇到的问题,难点,提供了有效的解决方案,供读者参考。

代码很简单,希望能够帮读者更好的学习。

想学习更多前端、Python爬虫、大数据等计算机知识,请前往:http://pdcfighting.com/

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

一篇文章带你了解JavaScript日期

日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用

python刷题-特殊的数字

问题描述  153是一个非常特殊的数,它等于它的每位数字的立方和,即153111555333。编程求所有满足这种条件的三位十进制数。输出格式  按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。foriinrange(100,1000):astr(i)0bstr(i)1c

用Python编程语言来实现阿姆斯特朗数的检查

一、什么是阿姆斯特朗数?如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋性数)。一个正整数称为阿姆斯特朗阶数。例:abcd...anbncndn...如果是3位的阿姆斯特朗数字,则每个数字的立方和等于该数字本身。例如:153111555333//153是一个阿姆斯特朗数。二、案