login
Recursive palindromes in base 10: palindromes n where each half of the digits of n is also a recursive palindrome.
5

%I #20 May 22 2021 20:39:49

%S 0,1,2,3,4,5,6,7,8,9,11,22,33,44,55,66,77,88,99,101,111,121,131,141,

%T 151,161,171,181,191,202,212,222,232,242,252,262,272,282,292,303,313,

%U 323,333,343,353,363,373,383,393,404,414,424,434,444,454,464,474,484,494,505,515,525,535,545,555,565,575,585,595,606,616,626,636,646,656,666,676,686,696,707,717,727,737,747,757,767,777,787,797,808,818,828,838,848,858,868,878,888,898,909,919,929,939,949,959,969,979,989,999,1111

%N Recursive palindromes in base 10: palindromes n where each half of the digits of n is also a recursive palindrome.

%C A number n with m digits in base 10 is a member if n is a palindrome, and the first floor(m/2) digits of n is already a previous term of a(n). All repdigit numbers are terms of a(n). Fast generation of new terms with 2m digits can be done by concatenating the previous terms with m digits twice. Fast generation of new terms with 2m+1 digits can be done by concatenating the previous terms with m digits twice with any single digit in the middle. The smallest palindrome which is not a member of a(n) is 1001.

%H Michael S. Branicky, <a href="/A240601/b240601.txt">Table of n, a(n) for n = 1..10000</a> (terms 1..1000 from Lior Manor)

%e 11011 is in the sequence since it is a palindrome of 5 digits, and the first floor(5/2) digits of it, 11, is also a term. 1001 and 10001 are not in the sequence since 10 is not in the sequence.

%o (Python)

%o from itertools import product

%o def pals(d, base=10): # all d-digit palindromes as strings

%o digits = "".join(str(i) for i in range(base))

%o for p in product(digits, repeat=d//2):

%o if d//2 > 0 and p[0] == "0": continue

%o left = "".join(p); right = left[::-1]

%o for mid in [[""], digits][d%2]: yield left + mid + right

%o def auptod(dd):

%o for d in range(1, dd+1):

%o for p in pals(d//2):

%o if d//2 == 0: p = ""

%o elif p[0] == "0": continue

%o for mid in [[""], "0123456789"][d%2]: yield int(p+mid+p[::-1])

%o print([rp for rp in auptod(6)]) # _Michael S. Branicky_, May 22 2021

%Y Cf. A002113, A010785, A240602.

%Y Cf. A227858 (first difference is a(110) = 1111, but A227858(109) = 1001). - _Georg Fischer_, Oct 23 2018

%K base,nonn,nice

%O 1,3

%A _Lior Manor_, Apr 09 2014