A044888 Numbers whose base-2 run lengths alternate: even, odd, even, ...
3, 6, 15, 24, 27, 30, 54, 63, 96, 99, 111, 120, 123, 126, 198, 216, 219, 222, 246, 255, 384, 387, 399, 438, 447, 480, 483, 495, 504, 507, 510, 774, 792, 795, 798, 864, 867, 879, 888, 891, 894, 966, 984, 987, 990, 1014, 1023, 1536
Offset: 1
Links
- Harvey P. Dale, Table of n, a(n) for n = 1..1000
Programs
-
Maple
Runs := proc (L) local j, r, i, k: j := 1: r[j] := L[1]: for i from 2 to nops(L) do if L[i] = L[i-1] then r[j] := r[j], L[i] else j := j+1: r[j] := L[i] end if end do: [seq([r[k]], k = 1 .. j)] end proc: RunLengths := proc (L) map(nops, Runs(L)) end proc: c := proc (n) ListTools:-Reverse(convert(n, base, 2)): RunLengths(%) end proc: A := {}: for n to 1540 do if `and`(type(c(n)[1], even) = true, type(product(c(n)[j]-c(n)[j+1], j = 1 .. nops(c(n))-1), odd)) then A := `union`(A, {n}) else end if end do: A; # most of the Maple program is due to W. Edwin Clark. # Emeric Deutsch, Jan 27 2018
-
Mathematica
oeQ[n_]:=Module[{idsleb=Boole[EvenQ/@(Length/@Split[IntegerDigits[ n,2]])]},idsleb == PadRight[{},Length[idsleb],{1,0}]]; Select[ Range[ 1600],oeQ] (* Harvey P. Dale, Sep 04 2020 *)
-
Python
from itertools import groupby def ok(n): return all(len(list(g))%2 == i%2 for i, (k, g) in enumerate(groupby(bin(n)[2:]))) print([i for i in range(1, 1537) if ok(i)]) # Michael S. Branicky, Jan 04 2021
Comments