for i in range(10 ** 2, 10 ** 8):
n = [int(j) ** len(str(i)) for j in str(i)]
if sum(n) == i:
print(i, n)
返回结果:
153 [1, 125, 27]
370 [27, 343, 0]
371 [27, 343, 1]
407 [64, 0, 343]
1634 [1, 1296, 81, 256]
8208 [4096, 16, 0, 4096]
9474 [6561, 256, 2401, 256]
54748 [3125, 1024, 16807, 1024, 32768]
92727 [59049, 32, 16807, 32, 16807]
93084 [59049, 243, 0, 32768, 1024]
548834 [15625, 4096, 262144, 262144, 729, 4096]
1741725 [1, 823543, 16384, 1, 823543, 128, 78125]
4210818 [16384, 128, 1, 0, 2097152, 1, 2097152]
9800817 [4782969, 2097152, 0, 0, 2097152, 1, 823543]
9926315 [4782969, 4782969, 128, 279936, 2187, 1, 78125]
24678050 [256, 65536, 1679616, 5764801, 16777216, 0, 390625, 0]
24678051 [256, 65536, 1679616, 5764801, 16777216, 0, 390625, 1]
88593477 [16777216, 16777216, 390625, 43046721, 6561, 65536, 5764801, 5764801]
补充说明:严格来说水仙花数就下面4个:153,370,371 ,407