login
Least integer k in A031443 such that k*n is also in A031443, or -1 if there is no such k.
2

%I #19 Dec 04 2022 13:05:34

%S 2,-1,49,-1,2,2,535,-1,3843,899,49,197,12,52,9,-1,9,10,2,9,2,2,35,9,2,

%T 2,147,2,2141,2095,32991,-1,258055,63495,3849,15367,961,906,226,3603,

%U 56,201,49,197,49,49,50,789,56,56,42,209,50,42,44,41,10,12,10,41

%N Least integer k in A031443 such that k*n is also in A031443, or -1 if there is no such k.

%C It's clear that a(2^i)=-1 if i>0, because 2^i*n always has more 0's than n does. I do not know if every number other than a power

%C of 2 has such a k. Local maxima seem to be near odd powers of 2. It is not hard to show that a(2^n +- 1)!=-1 for n>=1.

%H Rémy Sigrist, <a href="/A358857/b358857.txt">Table of n, a(n) for n = 1..10000</a>

%H Rémy Sigrist, <a href="/A358857/a358857.gp.txt">PARI program</a>

%F a(n) = A358858(n)/n unless a(n) = -1. - _Pontus von Brömssen_, Dec 03 2022

%e For n = 3 both 49 = [110001] and 49*3 = [10010011] have the same number of 0's as 1's, and this is the least such.

%o (Python)

%o from itertools import count

%o from sympy.utilities.iterables import multiset_permutations

%o def isbalanced(n): b = bin(n)[2:]; return b.count("0") == b.count("1")

%o def A031443gen(): yield from (int("1"+"".join(p), 2) for n in count(1) for p in multiset_permutations("0"*n+"1"*(n-1)))

%o def a(n):

%o if n > 1 and bin(n)[2:].strip("0") == "1": return -1

%o return next(k for k in A031443gen() if isbalanced(k*n))

%o print([a(n) for n in range(1, 61)]) # _Michael S. Branicky_, Dec 03 2022

%o (PARI) See Links section.

%Y Cf. A031443, A358858.

%K sign,base

%O 1,1

%A _Jeffrey Shallit_, Dec 03 2022