login
For any n > 0, a(n) is the least positive number whose binary expansion is both a prefix and a suffix of the binary expansion of n; a(0) = 0.
2

%I #11 Mar 07 2021 17:46:42

%S 0,1,2,1,4,1,6,1,8,1,2,1,12,1,14,1,16,1,2,1,20,1,2,1,24,1,26,1,28,1,

%T 30,1,32,1,2,1,4,1,2,1,40,1,2,1,44,1,2,1,48,1,50,1,52,1,6,1,56,1,58,1,

%U 60,1,62,1,64,1,2,1,4,1,2,1,72,1,2,1,4,1,2,1

%N For any n > 0, a(n) is the least positive number whose binary expansion is both a prefix and a suffix of the binary expansion of n; a(0) = 0.

%C All terms belong to A091065.

%H Rémy Sigrist, <a href="/A342242/b342242.txt">Table of n, a(n) for n = 0..8192</a>

%H <a href="/index/Bi#binary">Index entries for sequences related to binary expansion of n</a>

%F a(n) = 1 iff n is an odd number.

%F a(n) <= n with equality iff n belongs to A091065.

%F a(n) = n mod 2^A342241(n).

%F a(a(n)) = a(n).

%e For n = 814:

%e - the binary expansion of 814 is "1100101110",

%e - "1" does not match "0",

%e - "11" does not match "10",

%e - "110" matches "110",

%e - so the binary representation of a(814) is "110",

%e - and a(814) = 6.

%o (PARI) a(n) = { my (b=if (n, binary(n), [0])); for (w=1, oo, if (b[1..w]==b[#b+1-w..#b], return (fromdigits(b[1..w],2)))) }

%o (Python)

%o def a(n):

%o b = bin(n)[2:]

%o for i in range(1, len(b)+1):

%o if b[:i] == b[-i:]: return int(b[:i], 2)

%o print([a(n) for n in range(80)]) # _Michael S. Branicky_, Mar 07 2021

%Y Cf. A091065, A342241, A342241.

%K nonn,base,easy

%O 0,3

%A _Rémy Sigrist_, Mar 07 2021