python水仙花习题,要求用for循环,if语句

【问题描述】编写一个程序,输入一个正整数N(N大于等于100小于等于999),求出100N之间的所有水仙花数。所谓的水仙花数是:如果一个三位数的个位数、十位数、百位数的立方和等于该数自身,就称这个数为水仙花数。
【输入形式】输入一个正整数N。
【输出形式】输出从100到N之间的所有水仙花数,一行一个。
【样例输入】
400
【样例输出】
153
370
371
【样例说明】输入一个的正整数400,输出为100
400之间的水仙花数153,370,371。


n=int(input('请输入一个正整数:'))

for i in range(100,n):
    a = i//100
    b = (i-a*100)//10
    c = (i-a*100-b*10)

    if i == pow(a,3)+pow(b,3)+pow(c,3):
        print(i)

num = 999
if num >= 100 and num <= 999:
    for n in range(100, num+1):
        l = len(str(n))
        s = 0
        for i in str(n):
            s += int(i) ** l
        if s == n:
            print('{}是水仙花数'.format(n))
else:
    print('{}不符合要求'.format(num))