login
19-smooth numbers: numbers whose prime divisors are all <= 19.
21

%I #39 Sep 16 2024 20:35:49

%S 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,26,27,

%T 28,30,32,33,34,35,36,38,39,40,42,44,45,48,49,50,51,52,54,55,56,57,60,

%U 63,64,65,66,68,70,72,75,76,77,78,80,81,84,85,88,90,91,95,96,98,99,100

%N 19-smooth numbers: numbers whose prime divisors are all <= 19.

%H William A. Tedeschi, <a href="/A080682/b080682.txt">Table of n, a(n) for n = 1..10000</a>

%F Sum_{n>=1} 1/a(n) = Product_{primes p <= 19} p/(p-1) = (2*3*5*7*11*13*17*19)/(1*2*4*6*10*12*16*18) = 323323/55296. - _Amiram Eldar_, Sep 22 2020

%t mx = 120; Sort@ Flatten@ Table[ 2^i*3^j*5^k*7^l*11^m*13^n*17^o*19^p, {i, 0, Log[2,mx]}, {j, 0, Log[3, mx/2^i]}, {k, 0, Log[5, mx/(2^i*3^j)]},{l, 0, Log[7, mx/(2^i*3^j*5^k)]}, {m, 0, Log[11, mx/(2^i*3^j*5^k*7^l)]}, {n, 0, Log[13, mx/(2^i*3^j*5^k*7^l*11^m)]}, {o, 0, Log[17, mx/(2^i*3^j*5^k*7^l*11^m*13^n)]}, {p, 0, Log[19, mx/(2^i*3^j*5^k*7^l*11^m*13^n*17^o)]}] (* _Robert G. Wilson v_, Jan 19 2016 *)

%t Select[Range[100],Max[FactorInteger[#][[All,1]]]<20&] (* _Harvey P. Dale_, Sep 20 2018 *)

%o (PARI) test(n)= {m=n; forprime(p=2,19, while(m%p==0,m=m/p)); return(m==1)}

%o for(n=1,200,if(test(n),print1(n",")))

%o (PARI) list(lim,p=19)=if(p==2, return(powers(2, logint(lim\1,2)))); my(v=[],q=precprime(p-1),t=1); for(e=0,logint(lim\=1,p), v=concat(v, list(lim\t,q)*t); t*=p); Set(v) \\ _Charles R Greathouse IV_, Apr 16 2020

%o (Magma) [n: n in [1..100] | PrimeDivisors(n) subset PrimesUpTo(19)]; // _Bruno Berselli_, Sep 24 2012

%o (Python)

%o import heapq

%o from itertools import islice

%o from sympy import primerange

%o def agen(p=19): # generate all p-smooth terms

%o v, oldv, h, psmooth_primes, = 1, 0, [1], list(primerange(1, p+1))

%o while True:

%o v = heapq.heappop(h)

%o if v != oldv:

%o yield v

%o oldv = v

%o for p in psmooth_primes:

%o heapq.heappush(h, v*p)

%o print(list(islice(agen(), 72))) # _Michael S. Branicky_, Nov 20 2022

%o (Python)

%o from sympy import integer_log

%o def A080682(n):

%o def bisection(f,kmin=0,kmax=1):

%o while f(kmax) > kmax: kmax <<= 1

%o while kmax-kmin > 1:

%o kmid = kmax+kmin>>1

%o if f(kmid) <= kmid:

%o kmax = kmid

%o else:

%o kmin = kmid

%o return kmax

%o def g(x,m): return sum((x//3**i).bit_length() for i in range(integer_log(x,3)[0]+1)) if m==3 else sum(g(x//(m**i),prevprime(m))for i in range(integer_log(x,m)[0]+1))

%o def f(x): return n+x-g(x,19)

%o return bisection(f,n,n) # _Chai Wah Wu_, Sep 16 2024

%Y For p-smooth numbers with other values of p, see A003586, A051037, A002473, A051038, A080197, A080681, A080683.

%K easy,nonn

%O 1,2

%A _Cino Hilliard_, Mar 02 2003