login
The smaller of a pair of successive cubefull numbers without a powerful number between them.
1

%I #23 Sep 16 2024 15:05:51

%S 27,125,243,625,1000,1944,2187,3375,4000,4913,10000,15552,16807,17496,

%T 27648,34992,50625,83349,107811,139968,157216,194481,250000,279841,

%U 389017,390224,405000,614125,628864,810000,970299,1366875,1372000,1874048,2000000,2238728,2248091

%N The smaller of a pair of successive cubefull numbers without a powerful number between them.

%H Chai Wah Wu, <a href="/A371189/b371189.txt">Table of n, a(n) for n = 1..2123</a> (terms 1..500 from Amiram Eldar)

%H <a href="/index/Pow#powerful">Index entries for sequences related to powerful numbers</a>.

%e 27 = 3^3 is a term since it is cubefull, and the next powerful number, 32 = 2^5, is also cubefull.

%t cubQ[n_] := n == 1 || AllTrue[FactorInteger[n][[;; , 2]], # > 2 &];

%t seq[max_] := Module[{pows = Union[Flatten[Table[i^2*j^3, {j, 1, Surd[max, 3]}, {i, 1, Sqrt[max/j^3]}]]], ind = {}, d}, Do[If[cubQ[pows[[k]]], AppendTo[ind, k]], {k, 1, Length[pows]}]; d = Differences[ind]; pows[[ind[[Position[d, 1] // Flatten]]]]]; seq[10^6]

%o (PARI) iscubefull(n) = n == 1 || vecmin(factor(n)[, 2]) > 2;

%o lista(mx) = {my(s = List(), is1, is2); for(j = 1, sqrtnint(mx, 3), for(i = 1, sqrtint(mx\j^3), listput(s, i^2 * j^3))); s = Set(s); is1 = 1; for(i = 2, #s, is2 = iscubefull(s[i]); if(is1 && is2, print1(s[i-1], ", ")); is1 = is2);}

%o (Python)

%o from math import isqrt, gcd

%o from sympy import mobius, integer_nthroot, factorint

%o def A371189_gen(): # generator of terms

%o def squarefreepi(n): return int(sum(mobius(k)*(n//k**2) for k in range(1, isqrt(n)+1)))

%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, l, j = x-squarefreepi(integer_nthroot(x,3)[0]), 0, isqrt(x)

%o while j>1:

%o k2 = integer_nthroot(x//j**2,3)[0]+1

%o w = squarefreepi(k2-1)

%o c -= j*(w-l)

%o l, j = w, isqrt(x//k2**3)

%o return c+l

%o def g(x):

%o c = x

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

%o if all(d<=1 for d in factorint(w).values()):

%o for y in range(1,integer_nthroot(z:=x//w**5,4)[0]+1):

%o if gcd(w,y)==1 and all(d<=1 for d in factorint(y).values()):

%o c -= integer_nthroot(z//y**4,3)[0]

%o return c

%o m, w = 1, 1

%o for n in count(2):

%o k = bisection(lambda x:g(x)+n,m,m)

%o if (a:=f(k))-w== k-1-m:

%o yield m

%o m, w = k, a # _Chai Wah Wu_, Sep 15 2024

%Y Cf. A001694, A036966.

%K nonn

%O 1,1

%A _Amiram Eldar_, Mar 14 2024