立方数 41063625 (3453) 通过排列可以得到两个另外的立方数: 56623104 (3843) 和 66430125 (4053)。
实际上41063625是最小的三个(不多不少)排列是立方数的立方数。
找出最小的立方数,其五个(不多不少)排列是立方数。
# 字典存储
# key为立方数的排序字符串
# value(立方数的排序字符串出现次数, 立方数list)
i = 1
cube_dict = {}
while 1:
i3 = pow(i, 3)
digit_list = [j for j in str(i3)]
digit_list.sort()
digit_str = ''.join(digit_list)
if digit_str in cube_dict:
n = cube_dict[digit_str][0]
if n == 4:
break
l = cube_dict[digit_str][1]
l.append(i)
cube_dict[digit_str] = (n + 1, l)
else:
cube_dict[digit_str] = (1, [i])
i += 1
print(cube_dict[digit_str][1][0])