%I #50 Oct 08 2021 12:05:03
%S 1,5,0,18,25,20,0,61,68,64,72,103,110,134,0,138,141,140,141,172,191,
%T 228,225,244,306,281,272,339,384,412,0,390,421,372,472,395,441,486,
%U 495,473,566,576,629,735,626,661,706,707,741,825,782,751,811,924,930,908,927,975,1049,934,1018,1070,0
%N a(n) is the smallest integer k>=0 such that 2^k contains every digit in base n, or 0 if no such integer exists.
%C a(n) >= ceiling(log_2(n)*(n-1)), whenever a(n)>0. This is because in order for an integer to have n digits in base n it must have at least a magnitude of n-1 in base n.
%C a(n) = 0 at all powers of 2 (except 2 itself). This is because powers of 2 in power-of-2 bases can only have 2 distinct digits. Is a(n) equal to 0 for any other values of n?
%C It seems that the base n representation of 2^(2*n^2) contains all n digits whenever n is not a power of 2. A proof of this would yield a negative answer to the above question. In the absence of a negative answer to this question, at least an algorithm would be desirable whose application to any concrete value of n solves the problem whether a(n)=0 for this n (for instance, if a(n)<n^2 for all n then a proof of this would yield such an algorithm). - _Dimiter Skordev_, Aug 18 2021
%H Chai Wah Wu, <a href="/A291926/b291926.txt">Table of n, a(n) for n = 2..512</a> (n = 2..256 from Ely Golden).
%e a(3) = 5, since 2^5 is the smallest power of 2 which contains every digit in base 3: Namely, 2^5 is 1012 in base 3, whereas the previous powers are 1, 2, 11, 22, and 121, respectively, none of which contain all possible base-3 digits.
%t TakeWhile[#, # > -1 &] &@ Table[If[And[IntegerQ@ #, # > 1] &@ Log2@ n, 0, SelectFirst[Range[2^11], Times @@ DigitCount[2^#, n] > 0 &]] /. k_ /; MissingQ@ k -> -1, {n, 2, 64}] (* _Michael De Vlieger_, Sep 05 2017 *)
%o (Python)
%o def floorLog(b,n):
%o x=-1
%o while(n>0):
%o x+=1
%o n//=b
%o return x
%o def distinctDigits(n,b):
%o li=[]
%o while(n>0):
%o li.append(n%b)
%o n//=b
%o li=list(set(li))
%o li.sort()
%o return li
%o def iroot(k,n):
%o u, s = n, n+1
%o while u < s:
%o s = u
%o t = (k-1) * s + n // (s**(k-1))
%o u = t // k
%o return s
%o def perfectPower(n):
%o if(n==1): return 0
%o x=1
%o for i in range(2,floorLog(2,n)+1):
%o if(iroot(i,n)**i==n): x=i
%o return x
%o def leastPandigital(b,n):
%o if(n<=1 or b<=1): return 0
%o if(n==2): return 2 if (b==(1<<b.bit_length())-1) else 1
%o if(iroot(perfectPower(n),n)==iroot(perfectPower(b),b)): return 0
%o a=(floorLog(b,n)*(n-1))
%o while(distinctDigits(b**a,n)!=list(range(n))): a+=1
%o return a
%o for i in range(2,257):
%o print(str(i)+" "+str(leastPandigital(2,i)))
%o (Python)
%o from sympy.ntheory.digits import digits
%o def a(n):
%o b = bin(n)[2:]
%o if b.strip('0') == '1': return int(n == 2)
%o k = (len(b)-1)*(n-1)
%o while len(set(digits(2**k, n)[1:])) != n: k += 1
%o return k
%o print([a(n) for n in range(2, 65)]) # _Michael S. Branicky_, Oct 07 2021
%o (PARI) a(n) = {if (n==2, return (1)); if (ispower(n,,&k) && (k==2), return (0)); k = 1; while (#Set(digits(2^k, n)) != n, k++); k;} \\ _Michel Marcus_, Sep 06 2017
%Y Cf. A090493.
%K nonn,base
%O 2,2
%A _Ely Golden_, Sep 05 2017