A044903 Base-2 run lengths alternate: odd, even, odd, ...
1, 4, 7, 9, 16, 28, 31, 33, 36, 39, 57, 64, 73, 112, 124, 127, 129, 132, 135, 144, 156, 159, 225, 228, 231, 249, 256, 265, 289, 292, 295, 313, 448, 457, 496, 508, 511, 513, 516, 519, 528, 540, 543, 576, 585, 624, 636, 639, 897, 900
Offset: 1
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 900 do if `and`(type(c(n)[1], odd) = 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
-
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, 901) if ok(i)]) # Michael S. Branicky, Jan 04 2021
Comments