gzj137070928 发表于 2020-11-4 15:12:19

四位玫瑰数

四位玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。
例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数,3位数的自幂数被称为水仙花数。.
请输出所有4位数的四位玫瑰数,按照从小到大顺序,每个数字一行。
for i in range(1000, 10000):
    sum = 0
    temp = i
    while temp:
      sum = sum + (temp%10) ** 4
      temp //= 10
    if sum == i:
      print(i)

foxiangzun 发表于 2020-11-4 16:26:38

一层 for 循环即可解决

for i in range(1000, 10000):
        if i == pow(i // 1000, 4) + pow((i // 100) % 10, 4) + pow((i // 10) % 10, 4) + pow(i % 10, 4):
                print(i)

gzj137070928 发表于 2020-11-4 16:55:04

foxiangzun 发表于 2020-11-4 16:26
一层 for 循环即可解决

赞,浓缩在一起了
页: [1]
查看完整版本: 四位玫瑰数