A143146 a(n) is the smallest positive multiple of n that has the same number of 0's as 1's in its binary representation.
2, 2, 9, 12, 10, 12, 35, 56, 9, 10, 44, 12, 52, 42, 135, 240, 153, 180, 38, 180, 42, 44, 184, 216, 50, 52, 135, 56, 232, 150, 527, 992, 165, 170, 35, 180, 37, 38, 156, 240, 41, 42, 172, 44, 135, 184, 141, 240, 49, 50, 153, 52, 212, 216, 165, 56, 228, 232, 177, 180
Offset: 1
Examples
For n = 7, checking: 7*1 = 7 = 111_2; 7*2 = 14 = 1110_2; 7*3 = 21 = 10101_2; 7*4 = 28 = 11100_2. All of these have two many 1's in binary. But 7*5 = 35 = 100011_2, which has both three 0's and three 1's. So a(7) = 35.
Links
- Michael S. Branicky, Table of n, a(n) for n = 1..10000 (terms 1..1000 from Harvey P. Dale)
Programs
-
Maple
a:=proc(n) local b,k: b:=proc(m) convert(m,base,2) end proc: for k while add(b(k*n)[j],j=1..nops(b(k*n))) <> nops(b(k*n))-add(b(k*n)[j],j=1..nops(b(k*n))) do end do: k*n end proc: seq(a(n),n=1..60); # Emeric Deutsch, Aug 16 2008
-
Mathematica
spm[n_]:=Module[{k=1},While[DigitCount[k*n,2,0]!=DigitCount[k*n,2,1], k++]; k*n]; Array[spm,60] (* Harvey P. Dale, Apr 25 2014 *)
-
Python
def a(n): m = n b = bin(m)[2:] while len(b) != 2*b.count("1"): m += n b = bin(m)[2:] return m print([a(n) for n in range(1, 61)]) # Michael S. Branicky, May 15 2022
Formula
a(n) = n * A351599(n). - Rémy Sigrist, Jul 11 2022
Extensions
More terms from Emeric Deutsch, Aug 16 2008