Advertisement
Guest User

Untitled

a guest
Aug 29th, 2014
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (fn [x] (let [digits (fn digits
  2.                         [x] (->> x
  3.                                  str
  4.                                  vec
  5.                                  (map #(str %))
  6.                                  (map #(Integer/parseInt %))))
  7.                squares (fn squares [x] (map #(* % %) (digits x)))
  8.                sum-of-squares (fn sum-of-squares [x] (reduce + (squares x)))
  9.                initial-value x]
  10.            (loop [new-sum (sum-of-squares x)
  11.                   old-numbers #{x}]
  12.                (cond
  13.                  (= 1 new-sum) true
  14.                  (old-numbers new-sum) false
  15.                  :else (recur (sum-of-squares new-sum) (conj old-numbers new-sum))))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement