|
|
A345397
|
|
a(n) is the least number k such that {k, k^2, ..., k^n} are all digitally balanced numbers in base 2 (A031443), or 0 if no such k exists.
|
|
3
|
|
|
|
OFFSET
|
1,1
|
|
COMMENTS
|
|
|
LINKS
|
|
|
EXAMPLE
|
a(1) = 2 since 2 is digitally balanced: its binary representation, 10, has the same number of 0's and 1's.
a(2) = 212 since both 212 and 212^2 are digitally balanced: the binary representation of 212, 11010100, has 4 0's and 4 1's, and the binary representation of 212^2, 1010111110010000, has 8 0's and 8 1's.
|
|
MATHEMATICA
|
balQ[n_] := Module[{d = IntegerDigits[n, 2], m}, EvenQ @ (m = Length @ d) && Count[d, 1] == m/2]; f[k_] := Module[{e = 0, r = k}, While[balQ[r], r *= k; e++]; e]; mx = 5; s = Table[0, {mx}]; c = 0; n = 1; While[c < mx, k = f[n]; Do[If[s[[i]] == 0, s[[i]] = n; c++], {i, 1, k}]; n++]; s
|
|
PROG
|
(Python)
from itertools import count, islice
from sympy.utilities.iterables import multiset_permutations
def isbalanced(n): b = bin(n)[2:]; return b.count("0") == b.count("1")
def A031443gen(): yield from (int("1"+"".join(p), 2) for n in count(1) for p in multiset_permutations("0"*n+"1"*(n-1)))
def a(n):
for k in A031443gen():
if all(isbalanced(k**i) for i in range(2, n+1)):
return k
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn,base,more
|
|
AUTHOR
|
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|