Euler : Problem 53

Posted by TAKAIY On 2011年7月3日日曜日 0 コメント
100桁以下の数について、含まれる数字を幾つか選んで作られる新しい数の種類が百万個を超えるのは幾つあるかという問題。

言われた通りに計算しちゃったけど、nCrの答えって、rがnの真ん中にあるときが極大だから、それを使うともうちょっと速いはず。
やらなかったけど。

;;
;; Problem 53 : 2011/6/16
;; "Elapsed time: 473.81832 msecs"

(defn fact [n]
(reduce * (range 1 (inc n))))

(defn composision [n r]
(/ (fact n) (* (fact r) (fact (- n r)))))


(count
(filter #(> % 1000000)
(for [n (range 2 101) r (range 1 100) :when (> n r)]
(composision n r)))))
;;

0 コメント:

コメントを投稿