OFFSET
1,2
COMMENTS
Even numbers can't appear in this sequence. - Alonso del Arte, Sep 21 2011
LINKS
MATHEMATICA
aheadOnesRLQ[n_Integer] := Module[{digits, len, flag = True, iter = 1, ones = 0, zeros = 0}, digits = Reverse[IntegerDigits[n, 2]]; len = Length[digits]; While[flag && iter < len, If[digits[[iter]] == 1, ones++, zeros++]; flag = ones > zeros; iter++]; flag]; Select[Range[1, 201, 2], aheadOnesRLQ] (* Alonso del Arte, Sep 21 2011 *)
Select[Range[400], Min[Accumulate[Reverse[IntegerDigits[#, 2]/. (0->-1)]]]> 0&] (* Harvey P. Dale, Apr 23 2016 *)
PROG
(Haskell)
a036994 n = a036994_list !! (n-1)
a036994_list = filter ((p 0) . a030308_row) [1, 3 ..] where
p ones [] = ones > 0
p ones (0:bs) = ones > 1 && p (ones - 1) bs
p ones (1:bs) = p (ones + 1) bs
-- Reinhard Zumkeller, Aug 01 2013
(Python)
from itertools import count, islice
def A036994_gen(startvalue=0): # generator of terms >= startvalue
for n in count(max(startvalue, 0)):
s = bin(n)[2:]
c, l = 0, len(s)
for i in range(l):
c += int(s[l-i-1])
if 2*c <= i + 1:
break
else:
yield n
(PARI) ok(x)={if(x<1, return(0)); my(c=logint(x, 2), c0=0, c1=0); for(i=0, c, if(bittest(x, i), c1++, c0++); if(c1<=c0, return(0))); 1} \\ for(n=1, 367, if(ok(n), print1(n, ", "))) - Ruud H.G. van Tol, Sep 14 2022
CROSSREFS
KEYWORD
nonn,easy,base
AUTHOR
EXTENSIONS
More terms from Erich Friedman
STATUS
approved