A164710 A positive integer n is included if all runs of 0's in binary n are of the same length.
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 39, 42, 43, 45, 46, 47, 48, 49, 51, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 67, 71, 73, 76, 79, 85, 86, 87, 90, 91, 93, 94, 95, 96, 97, 99, 100
Offset: 1
Links
- Ivan Neretin, Table of n, a(n) for n = 1..10000
Programs
-
Maple
isA164710 := proc(n) local bdg,arl,lset ; bdg := convert(n,base,2) ; lset := {} ; arl := -1 ; for p from 1 to nops(bdg) do if op(p,bdg) = 0 then if p = 1 then arl := 1 ; else arl := arl+1 ; end if; else if arl > 0 then lset := lset union {arl} ; end if; arl := 0 ; end if; end do ; if arl > 0 then lset := lset union {arl} ; end if; return (nops(lset) <= 1 ); end proc: for n from 1 to 300 do if isA164710(n) then printf("%d,",n) ; end if; end do; # R. J. Mathar, Feb 27 2010 F:= proc(d) local res,r,m,e,C,M; res:= [1$d]; for r from 1 to floor(d/2) do for m from 1 to floor(d/r)-1 do e:= d - r*(m+1); for C in combinat:-choose(e+r,e) do M:= subsop(op(map(`=`,C,1)),[0$(e+r)]); res:= res, subs(0 = (1,0$m), M); od od od; sort(map(t -> add(t[-i]*2^(i-1),i=1..d), [res])); end proc: N:= 10: # to get all terms < 2^N map(op,[seq(F(d),d=1..N)]); # Robert Israel, Nov 09 2015
-
Mathematica
Select[Range@ 100, SameQ @@ Map[Length, Select[Split@ IntegerDigits[#, 2], First@ # == 0 &]] &] (* Michael De Vlieger, Aug 20 2017 *)
-
Perl
foreach(1..100){ %runs=(); $runs{$}++ foreach split /1+/, sprintf("%b",$); delete $runs{''}; print "$_, " if 1>=keys(%runs); } # Ivan Neretin, Nov 09 2015
Extensions
Terms beyond 39 by R. J. Mathar, Feb 27 2010
Comments