login
A106422
Smallest number beginning with 2 and having exactly n prime divisors counted with multiplicity.
2
2, 21, 20, 24, 200, 216, 288, 256, 2592, 2304, 2048, 20736, 20480, 24576, 204800, 221184, 294912, 262144, 2654208, 2359296, 2097152, 21233664, 20971520, 25165824, 209715200, 226492416, 201326592, 268435456, 2013265920, 2415919104
OFFSET
1,1
EXAMPLE
a(1) = 2, a(5) = 200 = 2^3*5^2.
PROG
(Python)
from itertools import count
from math import isqrt, prod
from sympy import primerange, integer_nthroot, primepi
def A106422(n):
if n == 1: return 2
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)))
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)))
for l in count(len(str(1<<n))-1):
kmin, kmax = 2*10**l-1, 3*10**l-1
mmin, mmax = f(kmin), f(kmax)
if mmax>mmin:
while kmax-kmin > 1:
kmid = kmax+kmin>>1
mmid = f(kmid)
if mmid > mmin:
kmax, mmax = kmid, mmid
else:
kmin, mmin = kmid, mmid
return kmax # Chai Wah Wu, Sep 12 2024
KEYWORD
base,nonn
AUTHOR
Ray Chandler, May 02 2005
STATUS
approved