From 7b7d4044036e7797f99be26cd7b324d8f0f1f9b9 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Sat, 26 Dec 2020 13:35:41 +0100 Subject: day25 --- day25.clj | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 day25.clj (limited to 'day25.clj') diff --git a/day25.clj b/day25.clj new file mode 100644 index 0000000..6fd8e55 --- /dev/null +++ b/day25.clj @@ -0,0 +1,29 @@ +(def data + (->> (slurp "day25") + clojure.string/split-lines + (map read-string))) + +; (def data '(5764801 17807724)) + +(defn gen [m] + (->> 1 + (iterate #(mod (* % m) 20201227)) + (map-indexed vector))) + +(def iters + (some #(if (= (second %) (first data)) + (first %)) + (gen 7))) + +(second (nth (gen (second data)) iters)) +;; => 5414549 + +(defn m* [a b] + (mod (* a b) 20201227)) + +(loop [pub 1 key1 1 key2 1] + (cond + (= pub (first data)) key2 + (= pub (second data)) key1 + :else (recur (m* pub 7) (m* key1 (first data)) (m* key2 (second data))))) +;; => 5414549 -- cgit 1.4.1