login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

A080683
23-smooth numbers: numbers whose prime divisors are all <= 23.
18
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, 27, 28, 30, 32, 33, 34, 35, 36, 38, 39, 40, 42, 44, 45, 46, 48, 49, 50, 51, 52, 54, 55, 56, 57, 60, 63, 64, 65, 66, 68, 69, 70, 72, 75, 76, 77, 78, 80, 81, 84, 85, 88, 90, 91, 92, 95
OFFSET
1,2
COMMENTS
Coincides for the first 111 terms with A174228 (divisors of 24!). - Bruno Berselli, Sep 24 2012
LINKS
FORMULA
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
MAPLE
select(t -> max(numtheory:-factorset(t)) <= 23, [$1..1000]); # Robert Israel, Jan 22 2016
MATHEMATICA
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 *)
PROG
(PARI) test(n)=m=n; forprime(p=2, 23, while(m%p==0, m=m/p)); return(m==1)
for(n=1, 100, if(test(n), print1(n", ")))
(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
(Magma) [n: n in [1..100] | PrimeDivisors(n) subset PrimesUpTo(23)]; // Bruno Berselli, Sep 24 2012
(Python)
import heapq
from itertools import islice
from sympy import primerange
def agen(p=23): # generate all p-smooth terms
v, oldv, h, psmooth_primes, = 1, 0, [1], list(primerange(1, p+1))
while True:
v = heapq.heappop(h)
if v != oldv:
yield v
oldv = v
for p in psmooth_primes:
heapq.heappush(h, v*p)
print(list(islice(agen(), 72))) # Michael S. Branicky, Nov 20 2022
(Python)
from sympy import integer_log, prevprime
def A080683(n):
def bisection(f, kmin=0, kmax=1):
while f(kmax) > kmax: kmax <<= 1
while kmax-kmin > 1:
kmid = kmax+kmin>>1
if f(kmid) <= kmid:
kmax = kmid
else:
kmin = kmid
return kmax
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))
def f(x): return n+x-g(x, 23)
return bisection(f, n, n) # Chai Wah Wu, Sep 16 2024
CROSSREFS
For p-smooth numbers with other values of p, see A003586, A051037, A002473, A051038, A080197, A080681, A080682.
Sequence in context: A160546 A356944 A087143 * A174228 A197640 A246099
KEYWORD
easy,nonn
AUTHOR
Cino Hilliard, Mar 02 2003
STATUS
approved