

A049445


Numbers n with property that the number of 1's in binary expansion of n (see A000120) divides n.


51



1, 2, 4, 6, 8, 10, 12, 16, 18, 20, 21, 24, 32, 34, 36, 40, 42, 48, 55, 60, 64, 66, 68, 69, 72, 80, 81, 84, 92, 96, 108, 110, 115, 116, 120, 126, 128, 130, 132, 136, 138, 144, 155, 156, 160, 162, 168, 172, 180, 184, 185, 192, 204, 205, 212, 216, 220, 222, 228
(list;
graph;
refs;
listen;
history;
text;
internal format)



OFFSET

1,2


COMMENTS

If instead of base 2 we take base 10, then we have the socalled Harshad or Niven numbers (i.e., positive integers divisible by the sum of their digits; A005349).  Emeric Deutsch, Apr 11 2007


LINKS



FORMULA

a(n) seems to be asymptotic to c*n*log(n) where 0.7 < c < 0.8.  Benoit Cloitre, Jan 22 2003
Heuristically, c should be 1/(2*log(2)), since a random dbit number should have probability approximately 2/d of being in the sequence.  Robert Israel, Aug 22 2014
De Koninck et al. (2003) proved that the number of baseb Niven numbers not exceeding x, N_b(x), is asymptotically equal to ((2*log(b)/(b1)^2) * Sum_{j=1..b1} gcd(j, b1) + o(1)) * x/log(x). For b=2, N_2(n) ~ (2*log(2) + o(1)) * x/log(x). Therefore, the constant c mentioned above is indeed 1/(2*log(2)).  Amiram Eldar, Aug 16 2020


EXAMPLE

20 is in the sequence because 20 is written 10100 in binary and 1 + 1 = 2, which divides 20.
21 is in the sequence because 21 is written 10101 in binary and 1 + 1 + 1 = 3, which divides 21.
22 is not in the sequence because 22 is written 10110 in binary 1 + 1 + 1 = 3, which does not divide 22.


MAPLE

a:=proc(n) local n2: n2:=convert(n, base, 2): if n mod add(n2[i], i=1..nops(n2)) = 0 then n else fi end: seq(a(n), n=1..300); # Emeric Deutsch, Apr 11 2007


MATHEMATICA

binHarshadQ[n_] := Divisible[n, Count[IntegerDigits[n, 2], 1]]; Select[Range[228], binHarshadQ] (* JeanFrançois Alcover, Dec 01 2011 *)
Select[Range[300], Divisible[#, DigitCount[#, 2, 1]]&] (* Harvey P. Dale, Mar 20 2016 *)


PROG

(PARI) for(n=1, 1000, b=binary(n); l=length(b); if(n%sum(i=1, l, component(b, i))==0, print1(n, ", ")))
(PARI) isok(n) = ! (n % hammingweight(n)); \\ Michel Marcus, Feb 10 2016
(Haskell)
a049445 n = a049445_list !! (n1)
a049445_list = map (+ 1) $ elemIndices 0 a199238_list
(Python)
A049445 = [n for n in range(1, 10**5) if not n % sum([int(d) for d in bin(n)[2:]])] # Chai Wah Wu, Aug 22 2014


CROSSREFS



KEYWORD

nonn,easy,nice,base


AUTHOR



EXTENSIONS



STATUS

approved



