OFFSET
1,1
COMMENTS
A run of exactly n successive powerful numbers is composed of n successive powerful numbers such that the powerful number that precedes the start of the run (if it does not start with 1) and the powerful number that follows the endpoint of the run are both not coprime to one of the members of the run.
a(9) > 10^16, if it exists.
EXAMPLE
a(1) = 72 because 72 is powerful, it is preceded by the powerful number 64 and gcd(64, 72) = 8 > 1, it is followed by the powerful number 81 and gcd(72, 81) = 9 > 1, and 72 is the least number with this property.
a(2) = 1 because 1 and 4 are successive powerful numbers that are coprime. 8, the powerful number that follows 4, is not coprime to 4 since gcd(4, 8) = 4 > 1.
a(3) = 9 because 9, 16 and 25 are 3 successive powerful numbers that are pairwise coprime: gcd(9, 16) = gcd(16, 25) = gcd(9, 25) = 1. They are not a part of a longer run since the powerful number that precedes 9 is 8 and gcd(8, 16) = 8 > 1, and the powerful number that follows 25 is 27 and gcd(9, 27) = 9 > 1. (9, 16, 25) is the run with the least start, 9, that has this property.
MATHEMATICA
pairCoprimeQ[s_] := Module[{ans = True}, Do[Do[If[! CoprimeQ[s[[i]], s[[j]]], ans = False; Break[]], {j, 1, i - 1}], {i, 1, Length[s]}]; ans];
pows[lim_] := Union[Flatten[Table[i^2 * j^3, {j, 1, Surd[lim, 3]}, {i, 1, Sqrt[lim/j^3]}]]];
seq[nmax_, lim_] := Module[{v = Table[0, {nmax}], s = {}, len = 0, init = 0, c = 0}, Do[len = Length[s];
AppendTo[s, k]; While[!pairCoprimeQ[s], s = Drop[s, 1]]; If[Length[s] <= len, If[len <= nmax && v[[len]] == 0, c++; v[[len]] = init]]; init = s[[1]]; If[c == nmax, Break[]], {k, pows[lim]}]; v]; seq[6, 10^10]
PROG
(PARI) iscoprime(s) = {for(i = 1, #s, for(j = 1, i-1, if(gcd(s[i], s[j]) > 1, return(0)))); 1; }
pows(lim) = {my(pows = List()); for(j = 1, sqrtnint(lim, 3), for(i = 1, sqrtint(lim \ j^3), listput(pows, i^2 * j^3))); Set(pows); }
lista(nmax, lim) = {my(pws = pows(lim), v = vector(nmax), s = List(), len = 0, init = 0); for(k = 1, #pws, len = #s; listput(s, pws[k]); while(!iscoprime(s), listpop(s, 1)); if(#s <= len, if(len <= nmax && v[len] == 0, v[len] = init)); init = s[1]); v; }
lista(6, 10^10)
CROSSREFS
KEYWORD
nonn,hard,more
AUTHOR
Amiram Eldar, Jun 14 2024
STATUS
approved
