VOOZH about

URL: https://oeis.org/A066058

⇱ A066058 - OEIS


login
A066058
In base 2: smallest integer which requires n 'Reverse and Add' steps to reach a palindrome.
6
0, 2, 11, 44, 19, 20, 275, 326, 259, 202, 103, 74, 1027, 1070, 1049, 1072, 1547, 1310, 1117, 794, 569, 398, 3083, 2154, 1177, 1064, 4697, 4264, 4443, 2678, 2169, 1422, 779, 3226, 1551, 1114, 1815, 1062, 4197, 3106, 8697, 7238, 16633, 12302, 6683
OFFSET
0,2
COMMENTS
The analog of A023109 in base 2.
EXAMPLE
11 is the smallest integer which requires two steps to reach a base 2 palindrome (cf. A066057), so a(2) = 11; written in base 10: 11 -> 11 + 13 = 24 -> 24 + 3 = 27; written in base 2: 1011 -> 1011 + 1101 = 11000 -> 11000 + 11 = 11011.
MATHEMATICA
Table[ SelectFirst[Range[0, 20000], (np = #; i = 0;
While[ np != IntegerReverse[np, 2] && i <= n,
np = np + IntegerReverse[np, 2]; i++];
i == n ) &] , {n, 0, 44}] (* Robert Price, Oct 16 2019 *)
PROG
(ARIBAS) (* For function b2reverse see A066057. *) function a066058(mx: integer); var k, m, n, rev, steps: integer; begin for k := 0 to mx do n := 0; steps := 0; m := n; rev := b2reverse(m); while not(steps = k and m = rev) do inc(n); m := n; rev := b2reverse(m); steps := 0; while steps < k and m <> rev do m := m + rev; rev := b2reverse(m); inc(steps); end; end; write(n, ", "); end; end; a066058(45);
(Python)
def A066058(n):
if n > 0:
k = 0
while True:
m = k
for i in range(n):
s1 = format(m, 'b')
s2 = s1[::-1]
if s1 == s2:
break
m += int(s2, 2)
else:
s1 = format(m, 'b')
if s1 == s1[::-1]:
return k
k += 1
else:
return 0 # Chai Wah Wu, Jan 06 2015
KEYWORD
base,nonn
AUTHOR
Klaus Brockhaus, Dec 04 2001
STATUS
approved