Skip to main content
Access keys NCBI Homepage MyNCBI Homepage Main Content Main Navigation
Proc Natl Acad Sci U S A. 2021 Mar 16; 118(11): e2022377118.
Published online 2021 Mar 10. doi: 10.1073/pnas.2022377118
PMCID: PMC7980389
PMID: 33692126

On a question of Mordell

Associated Data

Data Availability Statement

Significance

A Diophantine equation is a polynomial equation to which one seeks solutions in integers. There is a notable disparity between the difficulty of stating Diophantine equations and that of solving them. This feature was formalized in the 20th century by Matiyasevich’s negative answer to Hilbert’s tenth problem: It is impossible to tell whether some Diophantine equations have solutions or not. One need not look very far to find examples whose status is unknown. A striking example was noted by Mordell in 1953: The equation x3+y3+z3=3 has the solutions (1,1,1) and (4,4,5) (and permutations); are there any others? This paper concludes a 65-y search with an affirmative answer to Mordell’s question and strongly supports a related conjecture of Heath-Brown.

Keywords: Diophantine equations, Hilbert’s tenth problem, sums of three cubes

Abstract

We make several improvements to methods for finding integer solutions to x3+y3+z3=k for small values of k. We implemented these improvements on Charity Engine’s global compute grid of 500,000 volunteer PCs and found new representations for several values of k, including 3 and 42. This completes the search begun by Miller and Woollett in 1954 and resolves a challenge posed by Mordell in 1953.

“I think the problem, to be quite honest with you, is that you’ve never actually known what the question is.” Douglas Adams, The Hitchhiker’s Guide to the Galaxy, p. 183

1. Introduction

Let k be an integer with k/±4(mod9). Heath-Brown (1) has conjectured that there are infinitely many triples (x,y,z)Z3 such that

x3+y3+z3=k.
[1.1]

Interest in this Diophantine equation goes back at least to Mordell (2), who asked whether there are any solutions to Eq. 1.1 for k=3 other than permutations of (1,1,1) and (4,4,5). The following year, Miller and Woollett (3) used the electronic delay storage automatic calculator at Cambridge to run the first in a long line of computer searches attempting to answer Mordell’s question, and also expanded the search to all positive k100.

In this paper, we build on the approach of the first author in ref. 4, and find the following new solutions to Eq. 1.1:

569,936,821,221,962,380,7203+(569,936,821,113,563,493,509)3+(472,715,493,453,327,032)3=3,(80,538,738,812,075,974)3+80,435,758,145,817,5153+12,602,123,297,335,6313=42,(385,495,523,231,271,884)3+383,344,975,542,639,4453+98,422,560,467,622,8143=165,143,075,750,505,019,222,6453+(143,070,303,858,622,169,975)3+(6,941,531,883,806,363,291)3=579,(74,924,259,395,610,397)3+72,054,089,679,353,3783+35,961,979,615,356,5033=906.

In particular, we answer Mordell’s question and complete Miller and Woollett’s search by finding at least one solution to Eq. 1.1 for all k100 for which there are no local obstructions.

The algorithm used in ref. 4 is a refinement of an approach originally suggested in ref. 5, which is based on the following observation. Let us first assume that |x|>|y|>|z| and define

d:=|x+y|.

Then d is nonzero, and the solutions to Eq. 1.1 are precisely the triples (x,y,z) for which z is a cube root of k modulo d and the integer

Δ(d,z):=3d(4|kz3|d3)is a perfect square.
[1.2]

Solutions that do not satisfy |x|>|y|>|z| can be efficiently found by other means: After a suitable permutation, either x=y and z is a cube root of k, or y=z and we seek a solution to the Thue equation x3+2y3=k, which can be easily handled. If |x|>|y|>|z| and we also assume |z|>k, then we must have 0<d<α|z|, where α=2310.25992; see ref. 4, section 2 for details. Solutions with |z|k are easily found by solving x3+y3=kz3 for each fixed z with |z|k.

This leads to an algorithm that searches for solutions with |z|B by enumerating positive integers dαB, and, for each such d, determining the residue classes of all cube roots of k modulo d and searching the corresponding arithmetic progressions for values of z[B,B] that make Δ(d,z) a square. With suitable optimizations, including sieving arithmetic progressions to quickly rule out integers that are not squares modulo primes in a suitably chosen set, this leads to an algorithm that requires only OB(loglogB)(logloglogB) operations on integers in [0,B] for any fixed value of k. An attractive feature of this algorithm is that it finds all solutions with min{|x|,|y|,|z|}B, even those for which max{|x|,|y|,|z|} may be much larger than B (note that this is the case in our solution for k=3).

This algorithm was used in ref. 4 to find solutions for k=33 and k=795, leaving only the following 11 k1,000 unresolved:

42,114,165,390,579,627,633,732,906,921,975.
[1.3]

The search in ref. 4 also ruled out any solutions for these k with min{|x|,|y|,|z|}1016.

Here we make several improvements to this method in ref. 4 that allow us to find a new solution for k=3 as well as four of the outstanding k listed above.

Instead of a single parameter B bounding |z|B and 0<dαB, we use independent bounds dmax on d and zmax on |z|, whose ratio we optimize via an analysis of the expected distribution of |z|/d; this typically leads to a zmax/dmax ratio that is 10 to 20 times larger than the ratio 1/α3.847332 used in ref. 4.

Rather than explicitly representing a potentially large set of sieved arithmetic progressions containing candidate values of z for a given d, we implicitly represent them as intersections of arithmetic progressions modulo the prime power factors of d and auxiliary primes. This both improves the running time and reduces the memory footprint of the algorithm, allowing for much larger values of |z|.

We dynamically optimize the choice of auxiliary primes used for sieving based on the values of k and d; when d is much smaller than zmax, this can reduce the number of candidate values of z by several orders of magnitude.

We exploit 3-adic and cubic reciprocity constraints for all k±3(mod9); for the values of k listed in Eq. 1.3, this reduces the average number of z we need to check for a given value of d by a factor of between 2 and 4 compared to the congruence constraints used in ref. 4, which did not use cubic reciprocity for k3.

Along the way, we compute, to high precision, the expected density of solutions to Eq. 1.1 conjectured by Heath-Brown (1), and compare it with the numerical data compiled by Huisman (6) for k[3,1,000] and max{|x|,|y|,|z|}1015. The data strongly support Heath-Brown’s conjecture that Eq. 1.1 has infinitely many solutions for all k/±4(mod9).

2. Density Computations

In this section, we study Heath-Brown’s conjecture in detail. In particular, we explain how to compute the conjectured density of solutions to high precision and compare the results with available numerical data. We further study the densities of divisors dz3k and arithmetic progressions z(modd) that occur in our algorithm, which informs the choice of parameters used in our computations.

Let k be a cube-free integer with k3 and k/±4(mod9). Define K=Q(k3) and F=Q(3), and let oK and oF be their respective rings of integers. We have oF=Z[ζ6], where ζ6=1+32 is a generator of the unit group oF×. Also, Disc(F)=3 and Disc(K)=3f2, where, by ref. 7, lemma 2.1,

f=(pkp)1ifk±1    (mod9),3otherwise.

We define two modular forms related to F and K. First, let f1 be the modular form of weight 1 and level |Disc(K)| such that ζK(s)=ζ(s)L(s,f1). It follows, from the ramification description in ref. 7, section 2.1, that rational primes p decompose into prime ideals of oK as follows (subscripts denote inertia degrees):

poK=p1p2ifp2    (mod3)andpk,p1p1p1ifp1    (mod3)andpkandkis a cube modulop,p3ifp1    (mod3)andpkandkis not a cube modulop,p12p1ifp=3andk±1    (mod9),p13otherwise.

From this data, we find that the local Euler factor of L(s,f1) at p is

Lp(s,f1)=11cp(k)ps+Disc(K)pp2s,wherecp(k):=2ifpk,p1    (mod3)andk(p1)/31    (modp),1ifpk,p1    (mod3)andk(p1)/3/1    (modp),1ifp=3andk±1    (mod9),0otherwise.

Now let σ:FC be the unique embedding for which we have Iσ(3)>0. Let χf:(oF/3oF)×C× be the character defined by χf(ζ6+3oF)=σ(ζ61), and define χ(z):=σ(z)/|σ(z)|. Let χ be the Grössencharakter of F defined by

χ(αoF):=χ(α)χf(α+3oF)ifαoF\3oF,0ifα3oF.

By automorphic induction, there is a holomorphic newform f2 of weight 2 and level |Disc(F)|N(3oF)=27 such that L(s,f2)=L(s12,χ).

Given a prime p1(mod3), let ap denote the unique integer for which ap1(mod3) and 4p=ap2+27b2 for some bZ>0. Let α=ap+3b32 and p=αoF, so that poF=pp¯. We have

α+1=ap+2+3b32=3ap+23+b323oF,

so χf(α)=χf(1)=1. Thus, χ(p)=σ(α)p and χ(p¯)=σ(α)¯p, so the Euler factor of L(s,f2) at p (in its arithmetic normalization) is

1(1χ(p)p12s)(1χ(p¯)p12s)=11+apps+p12s.

For a prime p2(mod3), we have χ(poF)=χ(p)χf(p)=χf(1)=1, so the corresponding Euler factor is

11χ(poF)N(poF)12s=11+p12s.

Finally, χ(3)=0, so the Euler factor at p=3 is 1.

In summary, if we extend the definition of ap so that ap=0 for p/1(mod3), then the Euler factor of L(s,f2) at p is

Lp(s,f2)=11+apps+9pp12s.

A. Solution Density

Define

σp:=lime#{(x,y,z)    (modpe):x3+y3+z3k    (modpe)}p2e.

Then, as calculated by Heath-Brown (1), we have

σp=1+3cp(k)papp2ifp3k,1+(p1)ap1p2ifpkandp3,13#{(x,y,z)    (mod3):x3+y3+z3k    (mod9)}ifp=3.

Now let h:R3R0 be a height function, by which we mean a function that is continuous, symmetric in its inputs, and satisfies

h(x,y,z)>0 when x3+y3+z3=0 and xyz0,

h(λx,λy,λz)=|λ|h(x,y,z) for any λR×.

The real density of solutions to x3+y3+z3=0 with height in the interval H:=[H1,H2] can then be computed as follows.

For ε>0, define

S(ε):=(x,y,z)R3:h(x,y,z)H,|x3+y3+z3|ε,T(ε):=(x,y,z)R3:xyz0,h(x,y,z)H,|x3y3z3|ε,

so that vol(S(ε))/vol(T(ε))12 as ε0+. We may then compute

limε0+(2ε)1vol(S(ε))=12limε0+(2ε)1vol(T(ε))=120z1h(y3+z33,y,z)Hdy3(y3+z3)2/3dz=4011zh(t3+13,t,1)Hdt(t3+1)2/3dzz=41H1/h(t3+13,t,1)H2/h(t3+13,t,1)dzzdt(t3+1)2/3=σlogH2H1,
[2.1]

where σ=41(t3+1)2/3dt=23Γ(13)2Γ(23).

Heath-Brown conjectures that the number n(B) of solutions to Eq. 1.1, up to permutation, satisfying max{|x|,|y|,|z|}B is asymptotic to

e(B):=ρsollogBasB,whereρsol:=16σpσp.

As shown above, the real density does not depend on the precise choice of the height function h. We thus conjecture that the same asymptotic density applies to the solutions satisfying h(x,y,z)B for any similar choice of h, including, for example,

min{|x|,|y|,|z|},|xyz|13,andd=min{|x+y|,|x+z|,|y+z|}.

Let us now define

rp:=σpLp(1,f1)3Lp(2,f2)Lp(2,f1)6ζp(2)6Lp(2,(3))3,whereζp(s)=11psandLp(s,(3))=11p3ps.

A straightforward calculation shows that

rp=13apcp(k)+O(1)p3.

Since apcp(k) is the coefficient of ps in the Rankin–Selberg L-function L(s,f1f2), we expect square-root cancellation in the product prp. Under the generalized Riemann hypothesis (GRH), for large X, we have

pσp=1+O(X2logX)L(1,f1)3L(2,f2)L(2,f1)6ζ(2)6L(2,(3))3pXrp.
[2.2]

Applying Eq. 2.2 with X=109 allows us to compute the solution densities ρsol to roughly 18 digits of precision for all cube-free k1,000. To evaluate the L-functions, we used the extensive functionality available for that purpose in PARI/GP (8). Since our goal is merely to gather some statistics, we content ourselves with a heuristic estimate of the error in this computation, although it could be rigorously certified with more work. Some examples are shown in Table 1.

Table 1.

Selected ρsol and exp(1/ρsol)=min{BZ:e(B)1} for k1,000, including 10 smallest ρsol and all k with n(1015)=0

B=105B=1010B=1015
kρsolexp(1/ρsol)e(B)n(B)e(B)n(B)e(B)n(B)
8580.0285041,723,846,985,902,4590.32810.65620.9842
2760.03185443,031,002,119,1380.36710.73311.1002
3900.03293515,358,736,844,7360.37900.75801.1380
5160.03306213,665,771,588,1730.38100.76111.1421
6630.03319612,097,471,969,9740.38200.76411.1471
9750.038722164,297,126,9020.44600.89201.3370
1650.03963690,602,378,8090.45600.91301.3690
5550.04270614,770,444,4410.49210.98321.4752
9210.0441426,895,540,7440.50801.01601.5250
3480.0446325,378,175,3030.51421.02821.5423
9060.049745537,442,0630.57301.14501.7180
5790.050838348,939,9590.58501.17101.7560
1140.05845926,853,6090.67301.34602.0190
30.06105212,985,6120.70321.40622.1092
7320.0631377,561,5400.72701.45402.1810
6330.079660283,0590.91701.83402.7510
330.08883377,4221.02302.04503.0680
7950.08949171,2731.03002.06103.0910
420.1134496,7321.30602.61203.9180
6270.1295652,2491.49202.98304.4750

We compared Huisman’s dataset to an average form of Heath-Brown’s conjecture as follows. For an integer K3, define

NK(B):=#{(k,x,y,z)Z4:x3+y3+z3=kcube-free,3kK,|z||y||x|B}andρK:=kZ[3,K]kcube-freeρsol(k).

Then Heath-Brown’s conjecture implies that, for fixed K, we have NK(B)ρKlogB as B. The plot in Fig. 1 compares N1000(B) for B[107.5,1015], computed from Huisman’s (6) data, with ρ1000logB+C, where ρ1000363.869 and C679.4 was chosen to minimize the mean square difference. Out of 6,256 points, the two plots never differ by more than 42, which gives strong evidence for Heath-Brown’s conjecture, at least on average over k.

An external file that holds a picture, illustration, etc.
Object name is pnas.2022377118fig01.jpg

Scatter plot of N1000(B) as a function of B[107.5,1015] based on Huisman’s dataset (6), compared to the line ρ1000logB+C.

B. Divisor and Arithmetic Progression Densities

In this section, we assume that k±3(mod9) and derive estimates for the density of arithmetic progressions arising from cube roots of k modulo d. Define

δd:=1ifzZs.t.z3k    (modd)andordp(d){0,ordp(k/3)}pk,0otherwise,andF(s):=d=1δdds.

As shown in ref. 4, any d arising from a solution to Eq. 1.1 must satisfy δd=1, and we only consider such d in our algorithm.

For pk and e>0, we have δpe=cp(k)+2p33, so that F(s)=pFp(s), where

Fp(s):=1cp(k)+2p33ps1ifpk,1+pordp(k)sifpk3,1ifp=3.

For pk, the local factor Fp(s)3Lp(s,(3))ζp(s)2Lp(s,f1) is 1+O(p3s). Therefore, F(s)3 has meromorphic continuation to R(s)>13, with a pole of order 2 at s=1 and no other poles in the region {sC:R(s)1}. By ref. 9, theorem 3.1, it follows that

ddmaxδdρdivdmaxlogdmax3asdmax,whereρdiv:=lims1F(s)3(s1)213Γ23.

In turn, we have

lims1F(s)3(s1)2=1+O(X2)L(1,f1)L1,3pXFp(1)3Lp1,3ζp(1)2Lp(1,f1).

Let us now define

G(s):=d=1δdrd(k)ds,whererd(k)=#{z    (modd):z3k    (modd)}.

Then G(s)=pGp(s), where

Gp(s):=1+1+cp(k)ps1ifpk,1+p(1s)ordp(k)1ifpk3,1ifp=3.

For pk, we have Gp(s)Lp(2s,f1)ζp(2s)Lp(s,f1)ζp(s)=1+O(p3s). Therefore,

ddmaxδdrd(k)ρapdmaxasdmax,whereρap:=lims1G(s)(s1).

In turn, we have

ρap=1+O(X2)L(1,f1)L(2,f1)ζ(2)pXGp(1)Lp(2,f1)ζp(2)Lp(1,f1)ζp(1).

Table 2 lists estimates ρapdmax for the number πap(dmax) of arithmetic progressions modulo ddmax, as well as estimates ρdivdmax/logdmax3 for the number πdiv(dmax) of admissible ddmax, along with the ratios of these quantities.Remark 2.1: The average number of arithmetic progressions modulo ddmax listed in Table 2 is strikingly small. Even for dmax=1024, which is well beyond the feasible range, the average is around 3 and never above 3.5 for any of the listed k.Remark 2.2: For any fixed choice of the ratio R=zmax/dmax, the total running time of our algorithm is roughly proportional to ρapdmax. The constant of proportionality can be estimated by running the algorithm on a suitable sample of ddmax. These estimates allow us to efficiently manage resource allocation in large distributed computations; see section 5 for details.

Table 2.

Comparison of estimated and actual counts of arithmetic progressions modulo ddmax=1012 for various k of interest

kρapdmaxπap(dmax)ρdivdmaxlogdmax3πdiv(dmax)ρaplogdmax3ρdivπap(dmax)πdiv(dmax)
3476,709,085,641476,709,082,386221,480,415,360222,316,170,6002.1522.144
42439,262,042,312439,262,055,314194,525,166,395195,043,114,3142.2582.252
114346,031,225,026346,031,232,985169,944,552,313169,697,769,6952.0362.039
165398,768,628,911398,768,635,237201,820,401,130201,648,107,3841.9761.978
390361,424,697,190361,424,750,258170,411,108,873170,119,932,4642.1212.125
579467,532,879,762467,532,936,236220,746,986,113221,627,128,7202.1182.110
627544,308,148,137544,308,117,802238,234,806,279240,026,258,7622.2852.268
633510,771,397,972510,771,391,669227,368,579,096228,697,959,1632.2462.233
732396,862,883,895396,862,943,789145,013,347,786145,167,910,3262.7372.734
906353,110,285,004353,110,236,539166,128,603,588165,813,813,6312.1262.130
921420,143,131,383420,143,101,621212,693,499,876212,924,474,0631.9751.973
975461,977,372,770461,977,396,756194,140,103,965194,481,735,5722.3802.375

3. Cubic Reciprocity

In ref. 10, Cassels used cubic reciprocity to prove that, whenever x,y,zZ satisfy x3+y3+z3=3, we must have xyz(mod9). For fixed d=|x+y|, it follows that z is determined modulo 81. Colliot-Thélène and Wittenberg (11) later recast this phenomenon in terms of Brauer–Manin obstructions, and showed that, for any k, the solutions to Eq. 1.1 are always forbidden for some residue classes globally but not locally.* In this section, we extend Cassels’ analysis to all cube-free k±3(mod9), and derive constraints on the residue class of z(modq) for a certain modulus q27k. We assume throughout that k3ϵ(mod9) for a fixed ϵ{±1}.

Given α,βoF with β3oF, let αβ3 be the cubic residue symbol, as defined in ref. 12, chapters 9 and 14. Put ζ3=1+32oF. For integers x,y satisfying xyϵ(mod3), define

χk(x,y):=ζ3ϵ(yx)/3ζ3x+ζ31yk/33.

Note that χk(x,y) depends only on the residue classes of x,y(mod3k).Definition 3.1: We say that a pair (d,z)Z2 is admissible if there exist x,yZ satisfying the following conditions:

  • i)
    x+yϵd3d(mod27k);
  • ii)
    x3+y3+z3k(mod81k);
  • iii)
    {χk(x,y),χk(x,z),χk(y,z)}{0,1}.

Note that this definition depends only on the residue classes of d,z(mod27k).Lemma 3.2. Let (x,y,z)Z3 be a solution to Eq. 1.1, and let d:=|x+y|. Then (d,z) is admissible.Proof: Recall that k3ϵ(mod9). Since every cube is congruent to 0 or ±1(mod9), we have xyzϵ(mod3), so that x+yϵϵd3d(mod3). As d=|x+y|, it follows that x+y=ϵd3d, so condition 1 of the definition is satisfied. Condition 2 then follows directly from Eq. 1.1.

Now let

γ:=ϵ(ζ3x+ζ31y)=ϵy+ϵ(xy)ζ3.

By ref. 12, chapter 9, example 19, we have

χk(x,y)=ζ3ϵ(yx)/3ζ3x+ζ31yk/33=3γ3ϵγk/33=3ϵγ3γϵk/33,

where the last equality follows from the fact that (α/β)3 depends only on the ideal βoF and (±ϵ/β)3=((±ϵ)3/β)3=1. By cubic reciprocity (ref. 12, chapter 14, theorem 1), this equals

3ϵγ3ϵk/3γ3=kγ3.

Noting that x3+y3=(x+y)γγ¯, we have kz3(modγoF), whence

χk(x,y)=z3γ3{0,1},

and, by symmetry, we also have χk(x,z),χk(y,z){0,1}; thus condition 3 holds as well.

Lemma 3.3. Let

q:=27kpkordp(k)=2p=2orcp(2)=1p1,

and let d,z,zZ satisfy zz(modq). Then (d,z) is admissible iff (d,z) is admissible.

Proof: Suppose that (d,z) is admissible. Let p be a prime divisor of 27k/q, and consider zz(mod27k/p). By the Chinese remainder theorem, it suffices to show that (d,z) is admissible in this case.

Set a=(zz)/p, so that z=z+ap. Let x,y be integers satisfying the conditions in Definition 3.1, and let x=x+bp, y=ybp for some b27kp2Z. Then

(x)3+(y)3+(z)3x3+y3+z3+3p[az2+b(x2y2)]3p[az2+b(x2y2)]    (modp2).

If p(x2y2) and p(x+y), then we have xy(modp), p>2 and px, which means that 2x3+z30(modp) and 2(z/x)3(modp) is a cubic residue mod p. But p>2 implies cp(2)=1, meaning p1(mod3) and 2(p1)/3/1(modp), so 2 cannot be a cubic residue mod p, and we must have p(x2y2) or p(x+y).

If p(x2y2), then we may choose b so that b(x2y2)az2(modp), while, if p(x+y), then pz and any choice of b suffices. It follows that

(x)3+(y)3+(z)3k    (mod81k).

Moreover, we have χk(x,y)=χk(x,y), χk(x,z)=χk(x,z), and χk(y,z)=χk(y,z), by inspection. Thus (d,z) is admissible, as desired.

Thus, the definition of admissibility factors through Z/27kZ×Z/qZ.

Example 3.4: The table below shows the ratio

d    (mod27k)#{z    (modq):(d,z)is admissible}d(mod27k)#{z(modq):x(modq)s.t.x3+(dx)3+z3k    (mod3q)},

which is the average density of admissible residues z(modq) among all locally permitted residues, for a few k of interest.

k33342114633
Density0.2500.5900.9700.9620.585

Although the improvement is modest for some k, those cases still benefit from imposing local constraints mod q, some of which were not used in ref. 4; in particular, passing from mod 9 solutions to mod 81 solutions reduces the density by a factor of 4/9.

A. Algorithm

Let k3ϵ    (mod9) be a positive integer, and, for each positive integer m, let

C(m):={z+mZ:z3k(modm)}Z/mZ

denote the set of cube roots of k modulo m. Let P be the set of primes pk for which #C(p)>0; for pP, we then have #C(p)=3 if p1(mod3), and #C(p)=1 otherwise.

Let A be a set of small auxiliary primes pk whose product exceeds dmaxzmax; in practical computations, we may take A to be the primes p<256 not dividing k. Let s:=ϵd3, so that any solution to Eq. 1.1 with d=|x+y| has sgnz=s, and, for positive integers d and primes pdk, define

Sd(p):={z+pZ:3d(4s(z3k)d3)    (modp)}ifp>2,{k+d+2Z}ifp=2.

Finally, let c1>c0>1 and c2>1 denote integers that we will choose to optimize performance (typically, c04, c150, and c26), and let q be the divisor of 27k defined in Lemma 3.3.

Algorithm 3.5: Given k,dmax,zmaxZ>0 with k3ϵ(mod9), enumerate all pairs (d,z)Z2 for which there exist (x,y,z)Z3 satisfying Eq. 1.1 with |x|>|y|>|z|, k<|z|zmax, and |x+y|=ddmax as follows:

Recursively enumerate all positive integers d0=p1e1pnendmax, where p1>>pn are primes in P and eiZ>0. For each such d0, do the following:

  • i)
    For each positive divisor d1 of k/3 with gcd(d1,k/d1)=1, set d:=d0d1 and let Ad(q) be the set of z+qZ for which (d,z) is admissible.
  • ii)
    Set a:=1, and, if c1qd0<zmax, then order the pd in A by log#Sd(p)/logp, and, while c0qd0pa<zmax, replace a by pa, where p is the next prime in the ordering.
  • iii)
    Let b be the product of c2 primes pA not dividing da, chosen using either the ordering computed in the previous step or a fixed order.
  • iv)
    Set m:=d0qa, and let Z(m) be the subset of Z/mZ that is identified with
C(p1e1)××C(pnen)×Ad(q)×paSd(p)

via the Chinese remainder theorem. Let

Z(m,s,zmax):={zZ:z+mZZ(m),sgnz=s,and|z|zmax}.

For each zZ(m,s,zmax), if z+pZ lies in Sd(p) for all pb, check whether Δ(d,z) is square, and, if so, output the pair (d,z).Remark 3.6: The following remarks apply to the implementation of Algorithm 3.5.

The algorithm can be easily parallelized by restricting the range of p1 and, for very small values of p1, fixing p1 and restricting the range of p2.

The recursive enumeration of d0=p1enpnen ensures that, typically, only the value of pnen changes from one d0 to the next, allowing the product C(p1e1)××C(pnen) to be updated incrementally rather than recomputed for each d0.

The sets C(pe) are precomputed for pdmax, as are the sets Ad(q) for each d{1,q1} not divisible by 3, and the sets Sd(p) for each pA and d{1,,p1}. This allows the sets Z(m) to be efficiently enumerated using an explicit form of the Chinese remainder theorem that requires very little space. We shall refer to this procedure as CRT enumeration.

For pA, the precomputed sets Sd(p) for d{1,,p1} are also stored as bitmaps, as are Cartesian products of pairs of these sets and certain triples; this facilitates testing whether z+pZ lies in Sd(p) for pb.Example 3.7: For k=33 and d=5, we have C(d)={2} and sgnz=+1. For zmax=1016, this leaves 2×1015 candidate pairs (5,z) to check. We have #Ad(q)=14 with q=891, which reduces this to approximately 3.143×1013 candidate pairs. The table below shows the benefit of including additional primes pa.

pa#Sd(p)#Z(m)m#Z(m,s,zmax)
144,4553.143×1013
21148,9101.571×1013
711462,3702.245×1012
13342810,8105.180×1011
17937813,783,7702.742×1011
23124,536317,026,7101.431×1011
291568,0409,193,774,5907.401×1010
43191,292,760395,332,307,3703.270×1010
672734,904,52026,487,264,593,7901.318×1010
103431,500,894,3602,728,188,253,160,3705.501×109

The net gain is a factor of more than 363,541 over the naïve approach; we gain a factor of about 63 from cubic reciprocity and local constraints mod q, and a factor of about 5,712 from the pa. In general, including auxiliary pa ensures that the number of (d,z) we need to consider for small values of d is a negligible proportion of the total computation.Remark 3.8: With CRT enumeration, we avoid the need to store the sets Z(m), analogs of which were explicitly constructed in ref. 4. This greatly reduces the memory required when d is small. In this way, we no longer rely on computations of integral points on the elliptic curve defined by Eq. 1.2 to rule out very small values of d. Nevertheless, we note that one can improve the integral point search carried out in ref. 4, using a trick of Bremner (13) to pass to a 3-isogenous curve. Using this approach, we were able to unconditionally rule out any solutions to Eq. 1.1 with d100 for the k listed in Eq. 1.3, and with d20,000 assuming the GRH. It is thus now possible to certify, under GRH, Bremner’s heuristic search of the same region in 1995.

4. Heuristics

In this section, we present a heuristic analysis of the distribution of solutions to Eq. 1.1 for a fixed k. We then use this to optimize the choice of the ratio R:=zmax/dmax.

From Eq. 2.1, we see that, on V={(x,y,z)R3:x3+y3+z3=0,|x||y||z|}, the proportion of the real density contributed by points satisfying y/z[t1,t2] is

4σ1t1t2dt(t3+1)2/3.
[4.1]

Given a large solution (x,y,z)Z3 to x3+y3+z3=k, with |x||y||z|, the projective point [x:y:z]P2(R) lies close to the Fermat curve x3+y3+z3=0. We conjecture that, for fixed k, the ratios y/z are distributed as above: The proportion of points (ordered by any height function as in section A) with y/z[t1,t2] should converge to the quantity in Eq. 4.1.

Let us assume that this is the case and work out the distribution of r:=zx+y for (x,y,z)V. We have

yx=2r3+112r332(r31)andzx=r(12r333)2(r31),

so that

t:=yz=12r3336rand(t3+1)2/3dtdr=34r31.

Hence, for any Rα1, we have

Pr[rR]=1Pr[r>R]=14σ1R34r31dr=1cK(R),

where c=43σ1=63Γ(2/3)Γ(1/3)2=1.96084321968938583 and

K(R):=Rdr4r31=R1/2j=0j12j1+6j(4R3)j.

Thus, the values of 1cK(r) should be uniformly distributed on [0,1]. To test this hypothesis, we plotted the cumulative distribution of 1cK(z/(x+y)) over the points of the Huisman dataset with 107.5<|x|1015 versus that of a uniform random variable; see Fig. 2.Example 4.1: For our solution to x3+y3+z3=3, we have

r4.36×106andcK(r)9.39×104,

so this solution was an approximately 1-in-1,000 event. This is also reflected by the fact that the solution is highly skewed, with |x| and |y| both much larger than |z|.

An external file that holds a picture, illustration, etc.
Object name is pnas.2022377118fig02.jpg

Cumulative distribution of 1cK(z/(x+y)) over solutions (x,y,z) in the Huisman dataset with max{|x|,|y|,|z|}[107.5,1015], versus a uniform random variable.

We use this analysis to optimize the choice of R=zmax/dmax as follows. We assume that a given divisor dZ>0 occurs with probability κd/d, where κd is an arithmetic factor (depending on k) encoding the local solubility, in such a way that

dxκd=ρx+O(x/log2x),for some constantρ>0.

By partial summation, it follows that there exists C such that

dxκdd=ρlogx+C+o(1)anddxκdf(d)=(ρ+o(1))0xf(u)duasx,

for any monotonically decreasing function f satisfying f(u)us for some s(0,1). In turn, we expect to find z in a fixed arithmetic progression modulo ddmax with probability

Pr[|z|zmaxdfixed]=Pr[rzmax/d]=1cK(zmax/d).

Hence, the number of solutions that we expect to find is given by

ddmaxκdd1cKzmaxd=ρlogdmax+C+o(1)(ρ+o(1))c0dmaxKzmaxuduu=ρlogdmax+Cρczmax/dmaxK(r)drr+o(1).

Taking dmax=αzmax recovers Heath-Brown’s conjecture, provided that ρ=ρsol.

Next, suppose that the total running time is T(dmax,zmax), and let Td and Tz denote its partial derivatives. Let dmax be defined implicitly in terms of R=zmax/dmax so that (dmax,zmax) remains on a level set for T, meaning that

T(dmax,Rdmax)=constant.

Differentiating with respect to R, we have

Td(dmax,Rdmax)dmaxR+Tz(dmax,Rdmax)dmax+RdmaxR=0.

We seek to maximize the expected solution count, which, to leading order, is

ρlogdmax+CρcRK(r)drr.

Differentiating with respect to R, this gives

ρdmaxdmaxR+ρcK(R)R=0,

so that dmaxR=cdmaxK(R)/R. Substituting this into the above, we obtain

Td(dmax,Rdmax)Tz(dmax,Rdmax)=R1cK(R)1c1R3/21156R3R=:CR.

In Table 3, we show computed Td/Tz ratios for k=3 and various values of R and dmax. For a given dmax, we wish to choose R so that Td/TzCR. It is difficult to measure Td/Tz precisely; it is the ratio of two small numbers, and this ratio is easily influenced by small differences in timings when running computations on different hardware. To compute the values below, we used a single hardware platform and took medians of five runs to compute each row.

Table 3.

Td/Tz versus CR for various values of dmax and R=zmax/dmax for k=3

RdmaxzmaxTdTzTd/TzCR
322352402.804×10082.359×1010118.960.3
322402452.738×10082.247×1010121.860.3
322452502.922×10082.175×1010134.460.3
322502553.113×10082.150×1010144.860.3
322552603.678×10082.100×1010175.260.3
642352413.140×10081.813×1010173.2197.1
642402462.771×10081.730×1010160.2197.1
642452513.112×10081.613×1010192.9197.1
642502563.187×10081.506×1010211.6197.1
642552613.862×10081.612×1010239.6197.1
1282352423.749×10081.238×1010302.8618.5
1282402473.407×10081.216×1010280.2618.5
1282452523.826×10081.530×1010250.1618.5
1282502573.768×10081.185×1010318.0618.5
1282552624.096×10081.091×1010375.4618.5

From Table 3, we can see that, for k=3 and dmax235, the optimal choice of R is greater than 32, and, for dmax250, it is greater than 64. For other values of k, the pattern is similar, although the Td/Tz vary slightly; this is to be expected, given the varying benefit of cubic reciprocity constraints.

5. Computational Results

A. Implementation

We implemented the algorithm described in section A using the gcc C compiler (14) and the primesieve library for fast prime enumeration (15). We parallelized by partitioning the set of primes pdmax into subintervals [pmin,pmax] of suitable size, with the work distributed across jobs that checked all of the (d,z) candidates with the largest prime factor p1d lying in the assigned interval. Each job was run on a separate machine, with local parallelism achieved by distributing the p1 across available cores (and, for small values of p1, also distributing the p2), as noted in Remark 3.6. When choosing the number of jobs and the sizes of the intervals [pmin,pmax], we use the ρap density estimates derived in section A, as noted in Remark 2.2.

We used a standard Tonelli–Shanks approach to computing cube roots modulo primes; this involves computing a discrete logarithm in the 3-Sylow subgroup of (Z/pZ)×, using O(1) group operations on average, and O(1) exponentiations. Hensel lifting was used to compute cube roots modulo prime powers; these were precomputed and cached for all prime powers up to min{pmax,dmax}. For the values of dmax that we used, this precomputation typically takes just a few seconds, and the cache size is well under 1 gigabyte. We use Montgomery representation (16) for performing arithmetic in (Z/prZ)×, but switch to standard integer representation and use Barrett reduction (17) during CRT enumeration of cube roots of k modulo d, and when sieving arithmetic progressions via auxiliary primes.

For the k of interest, the sets Ad(q) giving constraints modulo the integer q defined in Lemma 3.3 for admissible pairs (d,z) were precomputed and cached; again, this takes only a few seconds for the largest values of k. In order to avoid using arithmetic progressions of modulus larger than zmax, we project these constraints to residue classes modulo a suitably chosen divisor of q when qd>zmax.

B. Computations

In September 2019, we ran computations for the 11 unresolved k1,000 listed in Eq. 1.3 on Charity Engine’s crowd-sourced compute grid consisting of approximately 500,000 personal computers. For this initial search, we used zmax=1017 and dmax=αzmax to search for all solutions to Eq. 1.1 with min{|x|,|y|,|z|}1017. This search yielded the solutions for k=42, k=165, and k=906 listed in the Introduction. We then ran a search for k=3 using zmax=1018 and dmax=αzmax/9 and found the solution for k=3 listed in the Introduction. These computations involved a total of several hundred core-years but were completed in just a few weeks (it is difficult to give more precise estimates of the computational costs, due to variations in processor speeds and resource availability in a crowd-sourced computation). Subsequently, over the course of 2020, Charity Engine conducted a search at lower priority for the remaining eight candidate values of k, with zmax=1019 and dmax=zmax/54; this yielded the solution for k=579 in January 2021.

Remark 5.1: While, in principle, these searches rule out the existence of any solutions that were not found, we are reluctant to make any unconditional claims. Despite putting in place measures to detect failures, including counting the primes that were enumerated (these counts can be efficiently verified after the fact), there is always the possibility of undetected hardware or software errors, especially on a large network of personal computers that typically do not have error correcting memory.

In order to verify the minimality of the solution we found for k=3, we ran a separate verification with zmax equal to 472,715,493,453,327,032, the absolute value of the z in our solution, and dmax=αzmax. This search was run on Google’s Compute Engine (19) and found no solutions other than those already known. These computations were run on 8-core (16 virtual CPU) instances equipped with Intel Xeon processors in the Sandybridge, Haswell, and Broadwell families running at 2.0 GHz or 2.2 GHz. Using 155,579 nodes, the computation took less than 4 h and used approximately 120 core-years. We detected errors in 5 of the 155,579 runs, which were corrected upon rerunning the computations. Barring the existence of any undetected errors, these computations rule out any smaller solutions for k=3 other than those we now know.

To assess the benefit of the theoretical and algorithmic improvements introduced here, we searched for solutions to k=33 using R=64, which is close to the optimal choice for dmax in the range [240,250]. The general search strategy we envision is to start with a value of dmax for which all solutions with |z|Rdmax are known, where R is chosen optimally for dmax. One would then successively double dmax, adjusting R as necessary, and run a search using zmax=Rdmax. If one takes care to avoid checking the same admissible (d,z) twice, the total time is approximately equal to a single complete search using the final values of dmax and R (one expects R to be increasing). The first dmax=2n sufficient to find a solution for k=33 with this strategy is dmax=247, for which we choose R=64, yielding zmax=253. Using 2.8-GHz Intel processors in the Skylake family, this search finds the known solution for k=33 in 107 core-days. The search in ref. 4 using zmax=1016 and dmax=αzmax took 3,145 core-days running mostly on 2.6-GHz Intel processors in the Sandybridge family. After adjusting for the difference in processor speeds and zmax values, our approach finds the solution for k=33 approximately 25 times faster.

In the future, we hope to use this strategy to search for solutions for the seven k1,000 that remain unresolved:

114,390,627,633,732,921,975.
[5.1]

Acknowledgments

We are extremely grateful to Charity Engine for providing the computational resources used for this project, and, in particular, to Mark McAndrew, Matthew Blumberg, and Rytis Slatkevičius, who were responsible for running these computations on the Charity Engine compute grid. We thank Roger Heath-Brown for several stimulating discussions; in particular, his conversation with A.R.B. in the Nettle and Rye on February 27, 2019 informed the analysis presented in section 4. A.V.S. also acknowledges the support of the Simons Foundation (Award 550033).

Footnotes

The authors declare no competing interest.

This article is a PNAS Direct Submission.

*Thus strong approximation fails for Eq. 1.1, but this is never enough to forbid the existence of integer solutions outright, so there is no Brauer–Manin obstruction.

See online for related content such as Commentaries.

Data Availability

Code has been deposited in GitHub at https://github.com/AndrewVSutherland/SumsOfThreeCubes (19).

References

1. Heath-Brown D. R., The density of zeros of forms for which weak approximation fails. Math. Comp. 59, 613–623 (1992). [Google Scholar]
2. Mordell L. J., On the integer solutions of the equation x2+y2+z2+2xyz=n. J. London Math. Soc. 28, 500–510 (1953). [Google Scholar]
3. Miller J. C. P., Woollett M. F. C., Solutions of the Diophantine equation x3+y3+z3=k. J. London Math. Soc. 30, 101–110 (1955). [Google Scholar]
4. Booker A. R., Cracking the problem with 33. Res. Number Theory 5, 26 (2019). [Google Scholar]
5. Heath-Brown D. R., Lioen W. M., te Riele H. J. J., On solving the Diophantine equation x3+y3+z3=k on a vector computer. Math. Comp. 61, 235–244 (1993). [Google Scholar]
6. Huisman S. G., Newer sums of three cubes. arXiv [Preprint] (2016). https://arxiv.org/abs/1604.07746 (Accessed 2 July 2020).
7. Harron R., The shapes of pure cubic fields. Proc. Amer. Math. Soc. 145, 509–524 (2017). [Google Scholar]
8. The PARI Group , PARI/GP, 2.11.21 edition. https://pari.math.u-bordeaux.fr/. Accessed 2 July 2020.
9. Kato R., A remark on the Wiener-Ikehara Tauberian theorem. Comment. Math. Univ. St. Pauli 64, 47–58 (2015). [Google Scholar]
10. Cassels J. W. S., A note on the Diophantine equation x3+y3+z3=3. Math. Comp. 44, 265–266 (1985). [Google Scholar]
11. Colliot-Thélène J. L., Wittenberg O., Groupe de Brauer et points entiers de deux familles de surfaces cubiques affines. Amer. J. Math. 134, 1303–1327 (2012). [Google Scholar]
12. Ireland K., Rosen M., A Classical Introduction to Modern Number Theory (Graduate Texts in Mathematics, Springer-Verlag, New York, NY, ed. 2, 1990), vol. 84. [Google Scholar]
13. Bremner A., “On sums of three cubes in Number theory (Halifax, NS, 1994)” in CMS Conference Proceedings, Dilcher K., Ed. (American Mathematical Society, Providence, RI, 1995), vol. 15, pp. 87–91. [Google Scholar]
14. The GCC Team , GCC: The GNU compiler collection, 7.4.0 edition. https://gcc.gnu.org/. Accessed 2 July 2020.
15. Walisch K., Data from “primesieve.” GitHub. https://github.com/kimwalisch/primesieve. Accessed 2 July 2020.
16. Montgomery P. L., Modular multiplication without trial division. Math. Comp. 44, 519–521 (1985). [Google Scholar]
17. Barrett P., “Implementing the Rivest Shamir and Adleman public key encryption algorithm on a standard digital signal processor” in Advances in Cryptology—CRYPTO ’86 (Santa Barbara, Calif., 1986), A. M. Odlyzko, Ed. (Lecture Notes in Computer Science, Springer, Berlin, Germany,1987) vol. 263, pp. 311–323. [Google Scholar]
18. Google LLC, Google compute engine documentation. https://cloud.google.com/compute/docs/. Accessed 2 July 2020.
19. Booker A. R., Sutherland A. V., Sums of three cubes. GitHub. https://github.com/AndrewVSutherland/SumsOfThreeCubes. Deposited 15 February 2021.

Articles from Proceedings of the National Academy of Sciences of the United States of America are provided here courtesy of National Academy of Sciences