OFFSET
1,4
LINKS
Robert Israel, Table of n, a(n) for n = 1..10000
FORMULA
a(2^k)= k (k>=0); otherwise, a(n) = a(floor(n/2)).
G.f. q(x) + Sum_{j>=1} q(x^(2^j))*(x^(2^j)-x^(2^(j-1)))/(x-1) where q(z) = Sum_{j>=1} j*x^(2^j). - Robert Israel, Sep 03 2017
EXAMPLE
a(19) = 2 because 19_2 = 10'0'11; a(21) = 1 because 21_2 = 10'101_2 (the counted 0's are marked).
MAPLE
a := proc (n) if type(log[2](n), integer) = true then log[2](n) else a(floor((1/2)*n)) end if end proc: seq(a(n), n = 1 .. 200);
# Alternate:
f := proc(n) option remember; local v;
v:= padic:-ordp(n, 2);
if n = 2^v then v else procname((n-2^v)/2^(v+1)) fi
end proc:
map(f, [$1..1000]); # Robert Israel, Sep 03 2017
MATHEMATICA
sfo[n_]:=Module[{sidn2=Split[IntegerDigits[n, 2]]}, If[Length[ sidn2[[1]]]> 1, 0, Length[ sidn2[[2]]]]]; Join[{0}, Array[sfo, 110, 2]] (* Harvey P. Dale, Mar 04 2018 *)
CROSSREFS
KEYWORD
nonn,base
AUTHOR
Emeric Deutsch, Sep 03 2017
STATUS
approved