21 lines
633 B
Clojure
21 lines
633 B
Clojure
(defn first-digit [n] (Integer/parseInt (subs (str n) 0 1)))
|
|
|
|
(defn last-digit [n] (mod n 10))
|
|
|
|
(defn bookend-number [n] (+ (* 10 (first-digit n)) (last-digit n)))
|
|
|
|
(defn is-gapful? [n] (and (>= n 100) (zero? (mod n (bookend-number n)))))
|
|
|
|
(defn gapful-from [n] (filter is-gapful? (iterate inc n)))
|
|
|
|
(defn gapful [] (gapful-from 1))
|
|
|
|
(defn gapfuls-in-range [start size] (take size (gapful-from start)))
|
|
|
|
(defn report-range [[start size]]
|
|
(doall (map println
|
|
[(format "First %d gapful numbers >= %d:" size start)
|
|
(gapfuls-in-range start size)
|
|
""])))
|
|
|
|
(doall (map report-range [ [1 30] [1000000 15] [1000000000 10] ]))
|