login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

A161501
a(n) is the smallest positive integer that is a palindrome when represented in binary, and is made by appending some number (zero or more) of binary digits on the right of n's binary representation.
3
1, 5, 3, 9, 5, 27, 7, 17, 9, 21, 45, 51, 27, 119, 15, 33, 17, 73, 153, 165, 21, 45, 93, 99, 51, 107, 27, 231, 119, 495, 31, 65, 33, 273, 561, 73, 297, 153, 313, 325, 165, 85, 693, 717, 45, 93, 189, 195, 99, 403, 51, 843, 107, 219, 443, 455, 231, 471, 119, 975, 495, 2015
OFFSET
1,2
LINKS
EXAMPLE
11 (decimal) in binary is 1011. Appending 01 to the right side of 1011 forms the binary palindrome 101101, which is 45 in decimal. Since two binary digits is the smallest number of digits that need to be appended to form a palindrome, then a(11) = 45. (Note that 45 is not the smallest positive number that when represented in binary is a palindrome and contains 1011 as a substring. That would instead be 11011 {binary} = 27 {decimal}.)
PROG
(PARI) a(n, base=2) = { my (b=digits(n, base)); if (b==Vecrev(b), return (n), my (t=[]); for (k=1, #b, t=concat(b[k], t); my (bt=concat(b, t)); if (bt==Vecrev(bt), return (fromdigits(bt, base))))) } \\ Rémy Sigrist, Mar 22 2020
(Python)
def A161501(n):
s = bin(n)[2:]
if s == s[::-1]:
return n
for i in range(1, len(s)):
if s[i:] == s[-1:i-1:-1]:
return int(s+s[i-1::-1], 2) # Chai Wah Wu, Aug 27 2021
CROSSREFS
Cf. A006995, A082216 (decimal variant), A145800, A161502.
Sequence in context: A165789 A133090 A145800 * A118273 A242616 A073891
KEYWORD
base,nonn
AUTHOR
Leroy Quet, Jun 11 2009
EXTENSIONS
More terms from Sean A. Irvine, Sep 27 2009
STATUS
approved