|
|
A261423
|
|
Largest palindrome <= n.
|
|
87
|
|
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 11, 11, 11, 11, 11, 11, 11, 11, 11, 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
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
0,3
|
|
COMMENTS
|
Might be called the palindromic floor function.
Let P(n) = n with the second half of its digits replaced by the first half of the digits in reverse order. If P(n) <= n, then a(n) = P(n), else if n=10^k then a(n) = n-1, else a(n) = P(n-10^floor(d/2)), where d is the number of digits of n. - M. F. Hasler, Sep 08 2015
The largest differences of n - a(n) occur for n = m*R(2k) - 1, where 1 <= m <= 9 and R(k)=(10^k-1)/9. In this case, n - a(n) = 1.1*10^k - 1. - M. F. Hasler, Sep 05 2018
|
|
LINKS
|
|
|
FORMULA
|
n - a(n) < 1.1*10^floor(d/2), where d = floor(log_10(n)) + 1 is the number of digits of n. - M. F. Hasler, Sep 05 2018
|
|
MAPLE
|
# P has list of palindromes
palfloor:=proc(n) global P; local i;
for i from 1 to nops(P) do
if P[i]=n then return(n); fi;
if P[i]>n then return(P[i-1]); fi;
od:
end;
|
|
MATHEMATICA
|
palQ[n_] := Block[{d = IntegerDigits@ n}, d == Reverse@ d]; Table[k = n;
|
|
PROG
|
(PARI) A261423(n, d=digits(n), m=sum(k=1, #d\2, d[k]*10^(k-1)))={if( n%10^(#d\2)<m, n==10^valuation(n, 10)&&return(n-1); d=digits(n-=10^(#d\2) /*#digits may decrease!*/); sum(k=1, #d\2, d[k]*10^(k-1)), m)+n-n%10^(#d\2)} \\ M. F. Hasler, Sep 08 2015, minor edit on Sep 05 2018
(Haskell)
a261423 n = a261423_list !! n
(Python)
def P(n):
s = str(n); h = s[:(len(s)+1)//2]; return int(h + h[-1-len(s)%2::-1])
def a(n):
s = str(n)
if s == '1'+'0'*(len(s)-1) and n > 1: return n - 1
Pn = P(n)
return Pn if Pn <= n else P(n - 10**(len(s)//2))
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn,base
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|