|
|
A262038
|
|
Least palindrome >= n.
|
|
79
|
|
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 11, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
0,3
|
|
COMMENTS
|
Could be called nextpalindrome() in analogy to the nextprime() function A007918. As for the latter (A151800), there is the variant "next strictly larger palindrome" which equals a(n+1), and thus differs from a(n) iff n is a palindrome; see PARI code.
Might also be called palindromic ceiling function in analogy to the name "palindromic floor" proposed for A261423.
|
|
LINKS
|
|
|
MATHEMATICA
|
palQ[n_] := Block[{d = IntegerDigits@ n}, d == Reverse@ d]; Table[k = n; While[! palQ@ k, k++]; k, {n, 0, 80}] (* Michael De Vlieger, Sep 09 2015 *)
|
|
PROG
|
(PARI) {A262038(n, d=digits(n), p(d)=sum(i=1, #d\2, (10^(i-1)+10^(#d-i))*d[i], if(bittest(#d, 0), 10^(#d\2)*d[#d\2+1])))= for(i=(#d+3)\2, #d, d[i]>d[#d+1-i]&&break; (d[i]<d[#d+1-i]||i==#d)&&return(p(d))); n<10&&return(n); forstep(i=(#d+1)\2, 1, -1, d[i]++>9||return(p(d)); d[i]=0); 10^#d+1} \\ For a function "next strictly larger palindrome", delete the i==#d and n<10... part. - M. F. Hasler, Sep 09 2015
(Haskell)
a262038 n = a262038_list !! n
a262038_list = f 0 a002113_list where
f n ps'@(p:ps) = p : f (n + 1) (if p > n then ps' else ps)
(Python)
sl = len(str(n))
l = sl>>1
if sl&1:
w = 10**l
n2 = w*10
for y in range(n//(10**l), n2):
k, m = y//10, 0
while k >= 10:
k, r = divmod(k, 10)
m = 10*m + r
z = y*w + 10*m + k
if z >= n:
return z
else:
w = 10**(l-1)
n2 = w*10
for y in range(n//(10**l), n2):
k, m = y, 0
while k >= 10:
k, r = divmod(k, 10)
m = 10*m + r
z = y*n2 + 10*m + k
if z >= n:
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn,base
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|