%I #31 Sep 15 2022 02:14:13
%S 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,
%T 33,33,33,33,33,33,33,33,44,44,44,44,44,44,44,44,44,44,44,55,55,55,55,
%U 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
%N Least palindrome >= n.
%C 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.
%C Might also be called palindromic ceiling function in analogy to the name "palindromic floor" proposed for A261423.
%H M. F. Hasler, <a href="/A262038/b262038.txt">Table of n, a(n) for n = 0..10000</a>
%H Eric Weisstein's World of Mathematics, <a href="http://mathworld.wolfram.com/PalindromicNumber.html">Palindromic Number</a>
%H Wikipedia, <a href="http://www.wikipedia.org/wiki/Palindromic_number">Palindromic number</a>
%H <a href="/index/Pac#palindromes">Index entries for sequences related to palindromes</a>
%t 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 *)
%o (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
%o (Haskell)
%o a262038 n = a262038_list !! n
%o a262038_list = f 0 a002113_list where
%o f n ps'@(p:ps) = p : f (n + 1) (if p > n then ps' else ps)
%o -- _Reinhard Zumkeller_, Sep 16 2015
%o (Python)
%o def A262038(n):
%o sl = len(str(n))
%o l = sl>>1
%o if sl&1:
%o w = 10**l
%o n2 = w*10
%o for y in range(n//(10**l),n2):
%o k, m = y//10, 0
%o while k >= 10:
%o k, r = divmod(k,10)
%o m = 10*m + r
%o z = y*w + 10*m + k
%o if z >= n:
%o return z
%o else:
%o w = 10**(l-1)
%o n2 = w*10
%o for y in range(n//(10**l),n2):
%o k, m = y, 0
%o while k >= 10:
%o k, r = divmod(k,10)
%o m = 10*m + r
%o z = y*n2 + 10*m + k
%o if z >= n:
%o return z # _Chai Wah Wu_, Sep 14 2022
%Y Cf. A002113, A261423, A262037.
%Y Sequences related to palindromic floor and ceiling: A175298, A206913, A206914, A261423, A262038, and the large block of consecutive sequences beginning at A265509.
%K nonn,base
%O 0,3
%A _M. F. Hasler_, Sep 08 2015