%I #36 Sep 16 2024 18:24:16
%S 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,24,25,26,27,28,
%T 30,32,33,34,35,36,39,40,42,44,45,48,49,50,51,52,54,55,56,60,63,64,65,
%U 66,68,70,72,75,77,78,80,81,84,85,88,90,91,96,98,99,100,102,104,105
%N 17-smooth numbers: numbers whose prime divisors are all <= 17.
%H William A. Tedeschi, <a href="/A080681/b080681.txt">Table of n, a(n) for n = 1..10000</a>
%F Sum_{n>=1} 1/a(n) = Product_{primes p <= 17} p/(p-1) = (2*3*5*7*11*13*17)/(1*2*4*6*10*12*16) = 17017/3072. - _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, {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)]}] (* _Robert G. Wilson v_, Aug 17 2012 *)
%o (PARI) test(n)= {m=n; forprime(p=2,17, 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=17)=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..150] | PrimeDivisors(n) subset PrimesUpTo(17)]; // _Bruno Berselli_, Sep 24 2012
%o (Python)
%o import heapq
%o from itertools import islice
%o from sympy import primerange
%o def agen(p=17): # 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(), 70))) # _Michael S. Branicky_, Nov 20 2022
%o (Python)
%o from sympy import integer_log, prevprime
%o def A080681(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,17)
%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, A080682, A080683.
%K easy,nonn
%O 1,2
%A _Cino Hilliard_, Mar 02 2003