Guest User

Untitled

a guest
Jul 16th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. ; no more null pointer :)
  2. (use 'clojure.set)
  3.  
  4. (def tens (range 1 10))
  5. (def ones (range 0 10))
  6.  
  7. (defn combine [a b] (+ (* 10 a) b))
  8. (defn uniq [a b n] (if (= a n) b a))
  9. (defn safed [a b] (if (zero? b) 0 (/ a b)))
  10. (def answers
  11. (for [a tens b ones c tens d ones
  12. :when (let [
  13. inter (intersection (set [a b]) (set [c d]))
  14. inter-int (first inter)
  15. ab (combine a b)
  16. cd (combine c d) ]
  17. (and
  18. (= 1 (count inter))
  19. (< (safed ab cd) 1)
  20. (not (= 0 b d))
  21. (= (safed ab cd) (safed (uniq a b inter-int) (uniq c d inter-int)))
  22. ))]
  23. [(combine a b) (combine c d)]))
  24.  
  25. (prn answers)
  26. (prn (map #(/ (first %) (last %)) answers))
  27. (prn (reduce * (map #(/ (first %) (last %)) answers)))
Add Comment
Please, Sign In to add comment