Python3打印一定范围内的水仙花数
题目
1打印一定范围内的水仙花数:水仙花数是指一个n位数 (n≥3),它的每个位上的数字的n次幂之和等于它本身。(10分)
题目内容:
水仙花数是指一个n位数 (n≥3),它的每个位上的数字的n次幂之和等于它本身。
例如:153是一个“水仙花数”,因为 153 是个 3位数,由题目可知计算规则:
1**3+5**3+3**3==153
输入一个正整数max,输出100到max之间的所有水仙花数(包括max)。
输入格式:
共一行,为一个正整数。
输出格式:
若干行,从小到大输出水仙花数,一行为一个数。
输入样例:
2500
输出样例:
153
370
371
407
1634
时间限制:1000ms内存限制:32000kb
#水仙花数
#实例1
x = input()
for s in range(100,int(x)+1):
y = 0
for n in range(len(str(s))):
y += int(str(s)[n])**len(str(s))
if s == y:
print(s);
#实例2
max1 = int(input())
for flower in range(100, max1 + 1):
tally = 0
Length = 0
a = flower
# 判断整数位数
while a != 0:
Length += 1
a = a // 10
# 判断水仙花数
for y in range(Length):
tally += int(str(flower)[y])**Length
if tally == flower:
print(flower)