题目内容: 定义函数版
水仙花数是指一个n位数 (n≥3),它的每个位上的数字的n次幂之和等于它本身。
例如:153是一个“水仙花数”,因为 153 是个 3位数,而13+53+3**3==153。
输入一个正整数max,输出100到max之间的所有水仙花数(包括max)。
输入格式:
共一行,为一个正整数。
输出格式:
若干行,从小到大输出水仙花数,一行为一个数。
输入样例:
2500
输出样例:
153
370
371
407
1634
n = int(input()) #输入的数值
for i in range (0,n+1): #检测范围内的所有int
sum = 0
p = str(i) #每次检测的单一int,需要用到每一位上的数字,因此转为str
for x in p:#获取每一位上的数字
sum = sum + int(x)**len(p) #将每一位上的数字按规则计算
if sum == i: #数位上的数字都相加完毕后,与原数字比较是否相等
print(i) #如果相等,那么print;如果不相等,进行下一轮
思路
1.获取范围内的每一个数(line2)
2.获取该数的、每一位的数字(line5)
3.按照规则,将每一位数