%I #41 Sep 16 2024 15:06:10
%S 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,
%T 27,28,30,32,33,34,35,36,38,39,40,42,44,45,46,48,49,50,51,52,54,55,56,
%U 57,60,63,64,65,66,68,69,70,72,75,76,77,78,80,81,84,85,88,90,91,92,95
%N 23-smooth numbers: numbers whose prime divisors are all <= 23.
%C Coincides for the first 111 terms with A174228 (divisors of 24!). - _Bruno Berselli_, Sep 24 2012
%H William A. Tedeschi, <a href="/A080683/b080683.txt">Table of n, a(n) for n = 1..10000</a>
%F Sum_{n>=1} 1/a(n) = Product_{primes p <= 23} p/(p-1) = (2*3*5*7*11*13*17*19*23)/(1*2*4*6*10*12*16*18*22) = 676039/110592. - _Amiram Eldar_, Sep 22 2020
%p select(t -> max(numtheory:-factorset(t)) <= 23, [$1..1000]); # _Robert Israel_, Jan 22 2016
%t mx = 100; Sort@ Flatten@ Table[ 2^a*3^b*5^c*7^d*11^e*13^f*17^g*19^h*23^i, {a, 0, Log[2, mx]}, {b, 0, Log[3, mx/2^a]}, {c, 0, Log[5, mx/(2^a*3^b)]}, {d, 0, Log[7, mx/(2^a*3^b*5^c)]}, {e, 0, Log[11, mx/(2^a*3^b*5^c*7^d)]}, {f, 0, Log[13, mx/(2^a*3^b*5^c*7^d*11^e)]}, {g, 0, Log[17, mx/(2^a*3^b*5^c*7^d*11^e*13^f)]}, {h, 0, Log[19, mx/(2^a*3^b*5^c*7^d*11^e*13^f*17^g)]}, {i, 0, Log[23, mx/(2^a*3^b*5^c*7^d*11^e*13^f*17^g*19^h)]}] (* _Robert G. Wilson v_, Jan 19 2016 *)
%o (PARI) test(n)=m=n; forprime(p=2,23, while(m%p==0,m=m/p)); return(m==1)
%o for(n=1,100,if(test(n),print1(n",")))
%o (PARI) list(lim,p=23)=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(23)]; // _Bruno Berselli_, Sep 24 2012
%o (Python)
%o import heapq
%o from itertools import islice
%o from sympy import primerange
%o def agen(p=23): # 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, prevprime
%o def A080683(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,23)
%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, A080682.
%K easy,nonn
%O 1,2
%A _Cino Hilliard_, Mar 02 2003