えっとおわりました
最初からある程度溶けそうだったんだけど
mod 6002156... 0とかしてて詰んでた
0で割ると例外起きるのにね!
Lingrのみんなで頭ひねってて
少し時間してからひらめいた
で、
(defn PMax [x] (/ x (first (filter (fn [y] (= (mod x y) 0)) (range 2 (/ x 2))))))
とかしてxに入れてやってみたんですけど これじゃとけない
素因数じゃなかったんですね
で、再起処理書いたんですがうまくいかないので
手動再起処理してやりましたwwwwwwwwww
まああんまり回数もしそうになかったんで
いか、前回と同じように貼りますね
; SLIME user> (defn PMax [x] (/ x (first (filter (fn [y] (= (mod x y) 0)) (range 2 (/ x 2)))))) #'user/PMax user> (PMax 256) 128 user> (PMax 1) nil user> (PMax 2) nil user> (defn PMax [x] (if (< x 3) (0) ((/ x (first (filter (fn [y] (= (mod x y) 0)) (range 2 (/ x 2)))))))) (defn PMax [x] (if (< x 3) (0) ((/ x (first (filter (fn [y] (= (mod x y) 0)) (range 2 (/ x 2)))))))) #'user/PMax user> (defn PMax [x] (if (< x 3) (0) ((/ x (first (filter (fn [y] (= (mod x y) 0)) (range 2 (/ x 2)))))))) #'user/PMax user> (defn PSMax [x] (let [y (PMax x)] (if (= y 0) x (PSMax y)))) #'user/PSMax user> (PSMax 600851475143) nil user> (PMax 600851475143) nil user> (defn PMax [x] (/ x (first (filter (fn [y] (= (mod x y) 0)) (range 2 (/ x 2)))))) #'user/PMax user> (PMax 600851475143) 8462696833 user> (PMax 8462696833) 10086647 user> (PMax 10086647) 6857 user> (PMax 6857)
ここでエラーが出たので
よって答えは 6857です
あー眠w
寝ます!
おやすみ!