Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;;euler problem #3
- (defn prime?
- ([num] (prime? num 2 (+ 1 (/ num 2))))
- ([num cur end]
- (cond
- (<= num 2) true
- (or (= cur end) (= num cur)) true
- (= 0 (mod num cur)) false
- :else (recur num (+ cur 1) end)
- )
- )
- )
- (defn find-prime-after [num]
- (if
- (prime? (+ 1 num)) (+ 1 num)
- (recur (+ 1 num)))
- )
- (defn find-prime-factors
- ([num] (find-prime-factors num [2]))
- ([num lst]
- (cond
- (< num (last lst)) lst)
- (= 0 (mod num (last lst))) (recur (/ num (last lst)) (conj lst (last lst)))
- (not= 0 (mod num (last lst))) (recur num (conj (reverse (rest (reverse lst))) (find-prime-after (last lst))))
- )
- )
- (defn solve-euler3 []
- ;;(find-prime-factors 600851475143)
- (println (find-prime-factors 10))
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement