login
5-smooth numbers which are not 3-smooth.
13

%I #23 Sep 18 2024 11:53:50

%S 5,10,15,20,25,30,40,45,50,60,75,80,90,100,120,125,135,150,160,180,

%T 200,225,240,250,270,300,320,360,375,400,405,450,480,500,540,600,625,

%U 640,675,720,750,800,810,900,960,1000,1080,1125,1200,1215,1250,1280,1350

%N 5-smooth numbers which are not 3-smooth.

%C Numbers of the form 2^r*3^s*5^t with r, s >= 0, t > 0.

%C That is, 5-smooth numbers which are multiples of 5. - _Charles R Greathouse IV_, Mar 19 2015

%H Amiram Eldar, <a href="/A080193/b080193.txt">Table of n, a(n) for n = 1..10000</a>

%F From _Amiram Eldar_, Nov 10 2020: (Start)

%F a(n) = 5 * A051037(n).

%F Sum_{n>=1} 1/a(n) = 3/4. (End)

%e 15 = 3*5 is a term but 18 = 2*3^2 is not.

%t Select[Range[1000], FactorInteger[#][[-1, 1]] == 5 &] (* _Amiram Eldar_, Nov 10 2020 *)

%o (PARI) {m=1440; z=[]; for(r=0,floor(log(m)/log(2)),a=2^r; for(s=0,floor(log(m/a)/log(3)),b=a*3^s; for(t=1, floor(log(m/b)/log(5)),z=concat(z,b*5^t)))); z=vecsort(z); for(i=1,length(z),print1(z[i],","))}

%o (PARI) list(lim)=my(v=List(),x=1,y,z); while((x*=5)<=lim, y=x/3; while((y*=3)<=lim, z=y/2; while((z*=2)<=lim, listput(v, z)))); Set(v) \\ _Charles R Greathouse IV_, Mar 19 2015

%o (Python)

%o from sympy import integer_log

%o def A080193(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 f(x):

%o c = n+x

%o for i in range(integer_log(x,5)[0]+1):

%o for j in range(integer_log(y:=x//5**i,3)[0]+1):

%o c -= (y//3**j).bit_length()

%o return c

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

%o (Python) # faster for initial segment of sequence

%o import heapq

%o from itertools import islice

%o def A080193gen(): # generator of terms

%o v, oldv, h, psmooth_primes, = 1, 0, [1], [2, 3, 5]

%o while True:

%o v = heapq.heappop(h)

%o if v != oldv:

%o yield 5*v

%o oldv = v

%o for p in psmooth_primes:

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

%o print(list(islice(A080193gen(), 55))) # _Michael S. Branicky_, Sep 18 2024

%Y Cf. A051037, A003586.

%K easy,nonn

%O 1,1

%A _Klaus Brockhaus_, Feb 10 2003