(set! *warn-on-reflection* true) (set! *unchecked-math* :warn-on-boxed) (def loop-count 1000000) (def expected-checksum 5000001) (defn configured-loop-count [] (try (let [line (read-line) value (Integer/parseInt (.trim ^String line))] (if (pos? value) value loop-count)) (catch Exception _ loop-count))) (defn math-loop [limit] (loop [i 0 acc 1] (if (< i limit) (let [next (+ acc (* (+ i 3) 2)) bounded (if (> next 1000000000) (- next 1000000000) next)] (recur (inc i) bounded)) acc))) (let [result (math-loop (configured-loop-count))] (println result) (System/exit (if (= result expected-checksum) 0 1)))