A285099 a(n) is the zero-based index of the second least significant 1-bit in the base-2 representation of n, or 0 if there are fewer than two 1-bits in n.
0, 0, 0, 1, 0, 2, 2, 1, 0, 3, 3, 1, 3, 2, 2, 1, 0, 4, 4, 1, 4, 2, 2, 1, 4, 3, 3, 1, 3, 2, 2, 1, 0, 5, 5, 1, 5, 2, 2, 1, 5, 3, 3, 1, 3, 2, 2, 1, 5, 4, 4, 1, 4, 2, 2, 1, 4, 3, 3, 1, 3, 2, 2, 1, 0, 6, 6, 1, 6, 2, 2, 1, 6, 3, 3, 1, 3, 2, 2, 1, 6, 4, 4, 1, 4, 2, 2, 1, 4, 3, 3, 1, 3, 2, 2, 1, 6, 5, 5, 1, 5, 2, 2, 1, 5, 3, 3, 1, 3, 2, 2, 1, 5, 4, 4, 1, 4, 2, 2, 1, 4
Offset: 0
Examples
For n = 3, "11" in binary, the second least significant 1-bit (the second 1-bit from the right) is at position 1 (when the rightmost position is position 0), thus a(3) = 1. For n = 4, "100" in binary, there is just one 1-bit present, thus a(4) = 0. For n = 5, "101" in binary, the second 1-bit from the right is at position 2, thus a(5) = 2. For n = 25, "11001" in binary, the second 1-bit from the right is at position 3, thus a(25) = 3.
Links
Programs
-
Mathematica
a007814[n_]:=IntegerExponent[n, 2]; a[n_]:=If[DigitCount[n, 2, 1]<2, 0, a007814[BitAnd[n, n - 1]]]; Table[a[n], {n, 0, 150}] (* Indranil Ghosh, Apr 20 2017 *)
-
Python
import math def a007814(n): return int(math.log(n - (n & n - 1), 2)) def a(n): return 0 if bin(n)[2:].count("1") < 2 else a007814(n & (n - 1)) # Indranil Ghosh, Apr 20 2017
-
Scheme
(define (A285099 n) (if (<= (A000120 n) 1) 0 (A007814 (A004198bi n (- n 1))))) ;; A004198bi implements bitwise-and.
Formula
If A000120(n) < 2, a(n) = 0, otherwise a(n) = A007814(A129760(n)) = A007814(n AND (n-1)). [Where AND is bitwise-and, A004198].
From Jeffrey Shallit, Apr 19 2020: (Start)
This is a 2-regular sequence, satisfying the identities
a(4n) = -a(n) + a(2n),
a(4n+2) = a(4n+1),
a(8n+1) = -a(2n+1) + 2a(4n+1),
a(8n+3) = a(4n+3),
a(8n+5) = 2a(4n+3),
a(8n+7) = a(4n+3). (End)