login
Smallest number beginning with 8 and having exactly n prime divisors counted with multiplicity.
2

%I #7 Sep 12 2024 19:22:21

%S 83,82,8,81,80,810,800,864,8000,8064,80000,80640,8192,82944,81920,

%T 802816,819200,884736,8126464,8257536,80621568,80216064,8388608,

%U 84934656,83886080,822083584,838860800,8120172544,805306368,8153726976

%N Smallest number beginning with 8 and having exactly n prime divisors counted with multiplicity.

%e a(3) = 8 = 2^3.

%o (Python)

%o from itertools import count

%o from math import isqrt, prod

%o from sympy import primerange, integer_nthroot, primepi

%o def A106428(n):

%o if n == 1: return 83

%o def g(x,a,b,c,m): yield from (((d,) for d in enumerate(primerange(b,isqrt(x//c)+1),a)) if m==2 else (((a2,b2),)+d for a2,b2 in enumerate(primerange(b,integer_nthroot(x//c,m)[0]+1),a) for d in g(x,a2,b2,c*b2,m-1)))

%o def f(x): return int(sum(primepi(x//prod(c[1] for c in a))-a[-1][0] for a in g(x,0,1,1,n)))

%o for l in count(len(str(1<<n))-1):

%o kmin, kmax = 8*10**l-1, 9*10**l-1

%o mmin, mmax = f(kmin), f(kmax)

%o if mmax>mmin:

%o while kmax-kmin > 1:

%o kmid = kmax+kmin>>1

%o mmid = f(kmid)

%o if mmid > mmin:

%o kmax, mmax = kmid, mmid

%o else:

%o kmin, mmin = kmid, mmid

%o return kmax # _Chai Wah Wu_, Sep 12 2024

%Y Cf. A077326-A077334, A106411-A106419, A106421-A106429.

%K base,nonn

%O 1,1

%A _Ray Chandler_, May 02 2005