|
|
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 so-called 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 d-bit 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 base-b Niven numbers not exceeding x, N_b(x), is asymptotically equal to ((2*log(b)/(b-1)^2) * Sum_{j=1..b-1} gcd(j, b-1) + 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] (* Jean-Franç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 !! (n-1)
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
|
|
|
|