Project Euler 62(python 0.056737s)
方針:
(1)立方数を文字列に直してリスト化し、ソートして文字列に戻す
(2)(1)で得た文字列を辞書のキーにし、値を[同じ要素からなる立方数の数, 立方数]として指定する
(3)同じ要素からなる立方数の数が5になれば終了
立方数を分解し、ソート、そして合体させるところまでを一行で書きたいのだが、
思いつかなかった。
速度はいいと思う。
#-*- coding:utf-8 -*- from datetime import datetime def Euler62(): num = 1 dim = {} while True: j = num ** 3 word = sorted(list(str( j ))) count = '' for i in word: count += i if count in dim: dim[count][0] += 1 if dim[count][0] == 5: return dim[count][1] else: dim[count] = [1, j] num += 1 def main(): start = datetime.now() answer = Euler62() end = datetime.now() print end - start, answer if __name__ == "__main__": main()