每日一练 no.7

版权声明:本文为博主原创文章,如若转载请注明出处 https://blog.csdn.net/tonydz0523/article/details/83654977

问题:

打印出范围内所有的"水仙花数"。
水仙花数是指一个 n 位正整数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)

解答:

r = input('输入范围(例如 100-999):')
n, m = r.split('-')
for num in range(int(n), int(m)):
    str_num = str(num)
    n = len(str_num)
    num_sum = 0
    for i in range(n):
        num_sum += pow(int(str_num[i]), n)
    if num_sum == num:
        print(num)

结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/tonydz0523/article/details/83654977