阿姆斯特朗数
一、定义
如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。特别的,当n=3时,阿姆斯特朗数又名水仙花数。
二、推理
当n = 1时:类似1的3次方还是1,通过检验,发现,只有一位的数都是阿姆斯特朗数,像1,2,3,4,5,6,7,8,9
当n = 2时:类似45中4的3次方加5的3次方不等于45,就不是阿姆斯特朗数。
当n=3时:类似153中1的3次方加5的3次方加3的3次方等于153,是阿姆斯特朗数,又名水仙花数
。。。当然还有n为4、为5。。。的情况就不一一列举了。
三、代码
a = input("输入一个范围:") #只要是大于0的整数就行
if a.isdigit(): #判断是否为纯数字
a = int(a) #因为input返回的是str型,为了下面的代码方便,将输入的数变成int型
for i in range(1,a+1):
i = str(i) #把数字转为字符串
x = len(i) #得到数字的位数 len是用来计算字符串的长度
result = 0 #定义一个变量
for j in i: #通过遍历字符串的方式获得输入的数字里面的每一位
j = int(j) #str--->int
result += j**x #公式:每一位的长度次方
pass
if result == int(i): #当每一位的长度次方之和等于输入的数时,满足条件
print(result,end=",")
else:
pass
四、总结
特别注意:本文中太多的转换类型,不可马虎。
以上内容仅供参考,切勿用于商业用途,定义内容来自万能的百度百科,其余如有雷同,纯属偶然!