#150
Palindromic Numbers
 

Difficulty:Medium
Topics:seqs math


A palindromic number is a number that is the same when written forwards or backwards (e.g., 3, 99, 14341).

Write a function which takes an integer n, as its only argument, and returns an increasing lazy sequence of all palindromic numbers that are not less than n.

The most simple solution will exceed the time limit!


test not run
(= (take 26 (__ 0))
   [0 1 2 3 4 5 6 7 8 9 
    11 22 33 44 55 66 77 88 99 
    101 111 121 131 141 151 161])
test not run
(= (take 16 (__ 162))
   [171 181 191 202 
    212 222 232 242 
    252 262 272 282 
    292 303 313 323])
test not run
(= (take 6 (__ 1234550000))
   [1234554321 1234664321 1234774321 
    1234884321 1234994321 1235005321])
test not run
(= (first (__ (* 111111111 111111111)))
   (* 111111111 111111111))
test not run
(= (set (take 199 (__ 0)))
   (set (map #(first (__ %)) (range 0 10000))))
test not run
(= true 
   (apply < (take 6666 (__ 9999999))))
test not run
(= (nth (__ 0) 10101)
   9102019)


Code which fills in the blank: