Archive for 2016年4月|Monthly archive page

projecteuler30

 projecteuler問題30は、自然数の各桁の 5 乗の和が、その自然数になるものを求め、その和を取るという問題。
 だから(汗)、スクリプトは力技で、

(define (pf i)
  (* i i i i i))
(let (lst)
  (for (i 2 999999)
   (if (= i (apply + (map pf (map int (explode (string i))))))
     (push i lst -1))
   )
  (println lst)
  (apply + lst)
)

 こんな感じ。
 これを実行すると

(4150 4151 54748 92727 93084 194979)
443839
> 

 と、自然数のリストとその和が出てきます。
 つまり、答えは 443839 。

 以上、如何でしょうか?

広告