Euler : Problem 30

Posted by YpsilonTAKAI On 2011年5月14日土曜日 0 コメント

30番まで来た。

6桁のときの各桁の5乗の合計は、9^5*6 = 354294 で6桁
7桁のときは、9^5*7 = 413343 6桁になっちゃうので、7桁以上の数で条件にあてはまるものは無い。

全部計算して条件に合うのものだけ抽出して計算。

;;
;; Problem 30 : 2011/5/
;; "Elapsed time: 24452.933823 msecs"

(reduce #(+ %1 (first %2)) 0
(drop 2
(filter #(= (first %) (second %))
(for [a1 (range 10) a2 (range 10) a3 (range 10)
a4 (range 10) a5 (range 10) a6 (range 10)]
[(+ (expt a1 5) (expt a2 5) (expt a3 5)
(expt a4 5) (expt a5 5) (expt a6 5))
(+ (* a1 (expt 10 5)) (* a2 (expt 10 4)) (* a3 (expt 10 3))
(* a4 (expt 10 2)) (* a5 (expt 10 1)) (* a6 (expt 10 0)))]))))
;;

このやりかただと、0と1が候補に入っちゃうので、 「drop 2」 してる。

0 コメント:

コメントを投稿