The Mordell Equation [Fermat’s proof]

Let’s have a look at a special case of the Mordell Equation, which looks at the difference between an integer cube and an integer square.  In this case we want to find all the integers x,y such that the difference between the cube and the square gives 2.  These sorts of problems are called Diophantine problems and have been studied by mathematicians for around 2000 years.  We want to find integer solution to:

First we can rearrange and factorise, using the property of imaginary numbers.

Next we define alpha and beta such that:

For completeness we can say that alpha and beta are part of an algebraic number field:

Next we use an extension of the Coprime Power Trick, which ensures that the following 2 equations have solutions (if our original equation also has a solution). Therefore we define:

We can then substitute our definition for alpha into the first equation directly above and expand:

Next we equate real and imaginary coefficients to give:

This last equation therefore requires that either one of the following equations must be true:

If we take the case when b = 1 we get:


If we take the case when b = -1 we get

Therefore our solution set is (a,b): (1,1), (1,-1), (-1,1), (-1,-1.  We substitute these possible answers into our definition for y to give the following:

We can then substitute these 2 values for y into the definition for x to get:

These therefore are the only solutions to our original equation.  We can check they both work:

We can see this result illustrated graphically by plotting the graph:

and then seeing that we have our integer solutions (3,5) and (3,-5) as coordinate on this curve.

This curve also clearly illustrates why we have a symmetrical set of solutions, as our graph is symmetrical about the x axis.

This particular proof was first derived by Fermat (of Fermat’s Last Theorem fame) in the 1600s and is an elegant example of a proof in number theory.  You can read more about the Mordell Equation in this paper (the proof above is based on that given in the paper, but there is a small mistake in factorization so that y = 7 and y = -7 is erroneously obtained)


Can you solve Oxford University’s Interview Question?

The excellent Youtube channel Mind Your Decisions is a gold mine for potential IB maths exploration topics.  I’m going to follow through my own approach to problem posed in the video. The problem is to be able to trace the movement of the midpoint of a ladder as it slides down a wall.  This has apparently been used as an Oxford interview question to test the ability to investigate novel problems.

Specific case

It’s normally a good idea to start with a specific case with some nice numbers, to see what happens.  So, I’ll choose a 3,4,5 triangle, where the ladder has a fixed length of 5 and has endpoints with coordinates (0,4) and (3,0).  The midpoint is given by ((0+3)/2, (4+0)/2) = (1.5, 2).

Next I imagine what would happen to the point (3,0) if the ladder slipped down the wall.  (3,0) would become (3+t,0) where t is a parameter.  Given that the length is fixed as 5, I can now find the new height of the ladder up the wall using Pythagoras:

The new height is given by:

Therefore the new midpoint is given by:

We can now define our curve parametrically:

Therefore we can make t the subject in the first equation to get an equation just in terms of x and y.

Therefore we can rearrange to get:

This is the equation of a circle centred at (0,0) with radius 2.5:

This graph therefore traces the movement of the midpoint of the ladder (note that when the ladder was vertical against the wall the midpoint would be 2.5 high hence the graph starts at (0,2.5).

The general case

Now we have worked through the maths for a specific case, the general case isn’t too much extra work.  For a triangle with base a and height b we would have the following midpoint coordinates:

This would lead to the following equation:

Which would rearrange to give the equation of the circle:

This is a circle centered at (0,0) with radius:

Another approach

This method is an alternative to the version above – this time using trigonometry.  We start with the triangle below:


and then let the ladder slide to get the following (as the angle will get smaller t will be negative):

We can then define the midpoint coordinates as:

We can then rearrange and square both sides to get the following:


We can then use the trig identity for cosine squared theta + sine squared theta = 1:

Which rearranges to give the same result as before:

So, there we go – we’ve passed an Oxford interview question with a couple of different methods!  The approach of first exploring the topic with a simple case is often a good starting point for these sorts of problems – as it allows you to gain an understanding of what is happening without getting too bogged down with variables.  You can watch the video for a quicker solution – are there any other ways of approaching this problem you can find?  How could this problem be modified?




wuhan flu

Using Maths to model the spread of Coronavirus (COVID-19)

This coronavirus is the latest virus to warrant global fears over a disease pandemic.  Throughout history we have seen pandemic diseases such as the Black Death in Middle Ages Europe and the Spanish Flu at the beginning of the 20th century. More recently we have seen HIV responsible for millions of deaths.  In the last few years there have been scares over bird flu and SARS – yet neither fully developed into a major global health problem.  So, how contagious is COVID-19, and how can we use mathematics to predict its spread?

Modelling disease outbreaks with real accuracy is an incredibly important job for mathematicians and all countries employ medical statisticians for this job .  Understanding how diseases spread and how fast they can spread through populations is essential to developing effective medical strategies to minimise deaths.  If you want to save lives maybe you should become a mathematician rather than a doctor!

Currently scientists know relatively little about the new virus – but they do know that it’s the same coronavirus family as SARS and MERS which can both cause serious respiratory problems.  Scientists are particularly interested in trying to discover how infectious the virus is, how long a person remains contagious, and whether people can be contagious before they show any symptoms.

In the case of COVID-19 we have the following early estimated values: [From a paper published by medical statisticians in the UK on January 24]

R0. between 3.6 and 4. This is defined as how many people an infectious person will pass on their infection to in a totally susceptible population.  The higher the R0. value the more quickly an infection will spread.  By comparison seasonal flu has a R0. value around 2.8.

Total number infected by January 21:  prediction interval 9,217–14,245.  Of these an estimated 3,050–4,017 currently with the virus and the others recovered (or died).  This is based on an estimation that only around 5% of cases have been diagnosed.  By February 4th they predict 132,751–273,649 will be infected.

Transmission rate β estimated at 1.07.  β represents the transmission rate per day – so on average an infected person will infect another 1.07 people a day.

Infectious period estimated at 3.6 days. We can therefore calculate μ (the per capita recovery rate) by μ = 1/(3.6). This tells us how quickly people will be removed from the population (either recovered and become immune or died)

SIR Model

The basic model is based on the SIR model.  The SIR model looks at how much of the population is susceptible to infection (S), how many of these go on to become infectious (I), and how many of these are removed (R) from the population being considered (i.e they either recover and thus won’t catch the virus again, or die).


The Guardian datablog have an excellent graphic to show the contagiousness relative to deadliness of different diseases [click to enlarge, or follow the link].  We can see that seasonal flu has an R0. value of around 2.8 and a fatality rate of around 0.1%, whereas measles has an R0. value of around 15 and a fatality rate of around 0.3%.  This means that measles is much more contagious than seasonal flu.

You can notice that we have nothing in the top right hand corner (very deadly and very contagious). This is just as well as that could be enough to seriously dent the human population. Most diseases we worry about fall into 2 categories – contagious and not very deadly or not very contagious and deadly.


The equations above represent a SIR (susceptible, infectious, removed) model which can be used to model the spread of diseases like flu.

dS/dt represents the rate of change of those who are susceptible to the illness with respect to time.  dI/dt represents the rate of change of those who are infected with respect to time.  dR/dt represents the rate of change of those who have been removed with respect to time (either recovered or died).

For example, if dI/dt is high then the number of people becoming infected is rapidly increasing.  When dI/dt is zero then there is no change in the numbers of people becoming infected (number of infections remain steady).  When dI/dt is negative then the numbers of people becoming infected is decreasing.

Modelling for COVID-19

N is the total population.  Let’s take as the population of Wuhan as 11 million.

μ is the per capita recovery (Calculated by μ = 1/(duration of illness) ).  We have μ = 1/3.6 = 5/18.

β the transmission rate as approximately 1.07

Therefore our 3 equations for rates of change become:

dS/dt = -1.07 S I /11,000,000

dI/dt = 1.07 S I /11,000,000 – 5/18 I

dR/dt = 5/18 I

Unfortunately these equations are very difficult to solve – but luckily we can use a computer program  or spreadsheet to plot what happens.   We need to assign starting values for S, I and R – the numbers of people susceptible, infectious and removed.  With the following values for January 21: S = 11,000,000, I = 3500, R = 8200, β = 1.07, μ = 5/18, I designed the following Excel spreadsheet (instructions on what formula to use here):

wuhan flu

This gives a prediction that around 3.9 million people infected within 2 weeks!  We can see that the SIR model that we have used is quite simplistic (and significantly different to the expert prediction of around 200,000 infected).

So, we can try and make things more realistic by adding some real life considerations.  The current value of β (the transmission rate) is 1.07, i.e an infected person will infect another 1.07 people each day.  We can significantly reduce this if we expect that infected people are quarantined effectively so that they do not interact with other members of the public, and indeed if people who are not sick avoid going outside.  So, if we take β as (say) 0.6 instead we get the following table:

Screen Shot 2020-01-29 at 6.18.48 AM

Here we can see that this change to β has had a dramatic effect to our model.  Now we are predicting around 129,000 infected after 14 days – which is much more in line with the estimate in the paper above.

As we are seeing exponential growth in the spread, small changes to the parameters will have very large effects.  There are more sophisticated SIR models which can then be used to better understand the spread of a disease.  Nevertheless we can see clearly from the spreadsheet the interplay between susceptible, infected and recovered which is the foundation for understanding the spread of viruses like COVID-19.

[Edited in March to use the newly designated name COVID-19]

Square Triangular Numbers

Square triangular numbers are numbers which are both square numbers and also triangular numbers – i.e they can be arranged in a square or a triangle.  The picture above (source: wikipedia) shows that 36 is both a square number and also a triangular number.  The question is how many other square triangular numbers we can find?

The equation we are trying to solve is:

a2 = 0.5(b2+b)

for some a, b as positive integers. The LHS is the formula to generate square numbers and the RHS is the formula to generate the triangular numbers.

We can start with some simple Python code (which you can run here):

for c in range(1,10001):
 for d in range(1,10001):
  if c**2 == (d**2+d)/2:
   print(c**2, c,d)

This checks the first 10000 square numbers and the first 10000 triangular numbers and returns the following:

1 1 1
36 6 8
1225 35 49
41616 204 288
1413721 1189 1681
48024900 6930 9800

i.e 1225 is the next square triangular number after 36, and can be formed as 352 or as 0.5(492+49). We can see that there are very few square triangular numbers to be found in the first 50 million numbers. The largest we found was 48,024,900 which is made by 69302 or as 0.5(98002+9800).

We can notice that the ratio between each consecutive pair of square triangular numbers looks like it converges as it gives:

36/1 = 36
1225/36 = 34.027778
41616/1225 = 33.972245
1413721/41616 = 33.970612
48024900/1413721 = 33.970564

So, let’s use this to predict that the next square triangular number will be around

48024900 x 33.9706 = 1,631,434,668.

If we square root this answer we get approximately 40391
If we solve 0.5(b2+b) = 1,631,434,668 using Wolfram we get approximately 57120.

Therefore let’s amend our code to look in this region:

for c in range(40380,40400):
 for d in range(57100,57130):
  if c**2 == (d**2+d)/2:
   print(c**2, c,d)

This very quickly finds the next solution as:

1631432881 40391 57121

This is indeed 403912 – so our approximation was very accurate. We can see that this also gives a ratio of 1631432881/48024900 = 33.97056279 which we can then use to predict that the next term will be 33.970563 x 1631432881 = 55,420,693,460. Square rooting this gives a prediction that we will use the 235,416 square number. 235,4162 gives 55,420,693,056 (using Wolfram Alpha) and this is indeed the next square triangular number.

So, using a mixture of computer code and some pattern exploration we have found a method for finding the next square triangular numbers. Clearly we will quickly get some very large numbers – but as long as we have the computational power, this method should continue to work.

Using number theory

The ever industrious Euler actually found a formula for square triangular numbers in 1778 – a very long time before computers and calculators, so let’s have a look at his method:

We start with the initial problem, and our initial goal is to rearrange it into the following form:

Next we make a substitution:

Here, when we get to the equation 1 = x2 – 2y2 we have arrived at a Pell Equation (hence the rearrangement to get to this point).  This particular Pell Equation has the solution quoted above where we can define Pk  as


Therefore we have

Therefore for any given k we can find the kth square triangular number.  The a value will give us the square number required and the b value will give us the triangular number required.  For example with k = 3:

This tells us the 3rd square triangular number is the 35th square number or the 49th triangular number.  Both these give us an answer of 1225 – which checking back from our table is the correct answer.

So, we have arrived at 2 possible methods for finding the square triangular numbers – one using modern computational power, and one using the skills of 18th century number theory.

Rational Approximations to Irrational Numbers

This year two mathematicians (James Maynard and Dimitris Koukoulopoulos) managed to prove a long-standing Number Theory problem called the Duffin Schaeffer Conjecture.  The problem is concerned with the ability to obtain rational approximations to irrational numbers.  For example, a rational approximation to pi is 22/7.  This gives 3.142857 and therefore approximates pi to 2 decimal places.  You can find ever more accurate rational approximations and the conjecture looks at how efficiently we can form these approximation, and to within what error bound.

Finding Rational Approximations for  pi

The general form of the inequality I want to solve is as follows:

Here alpha is an irrational number, p/q is the rational approximation, and f(q)/q can be thought of as the error bound that I need to keep my approximation within.

If I take f(q) = 1/q then I will get the following error bound:

So, the question is, can I find some values of q (where p and q are integers) such that the error bound is less than 1/(q squared)?

Let’s see if we can solve this for when our irrational number is pi, and when we choose q = 6.

We can see that this returns a rational approximation, 19/6 which only 0.02507… away from  pi. This is indeed a smaller error than 1/36.  We won’t be able to find such solutions to our inequality for every value of q that we choose, but we will be able to find an infinite number of solutions, each getting progressively better at approximating pi.

The General Case (Duffin Schaeffer Conjecture)

The general case of this problem states that there will be infinite solutions to the inequality for any given irrational number alpha if and only if the following condition holds:


We will have infinitely many solutions (with p and q as integers in their lowest terms) if and only if:

Here the new symbol represents the Euler totient.  You can read about this at the link if you’re interested, but for the purposes of the post we can transform into something else shortly!

Does f(q) = 1/q provide infinite solutions?

When f(q) = 1/q we have:

Therefore we need to investigate the following sum to infinity:

Now we can make use of an equivalence, which shows that:


Where the new symbol on the right is the Zeta function.  The Zeta function is defined as:

So, in our case we have s = 2.  This gives:

But we know the limit of both the top and the bottom sum to infinity.  The top limit is called the Harmonic series, and diverges to infinity. Therefore:

Whereas the bottom limit is a p-series with p=2, this is known to converge. In fact we have:

Therefore because we have a divergent series divided by a convergent one, we will have the following result:

This shows that our error bound 1/(q squared) will be satisfied by infinitely many values of q for any given irrational number.

Does f(q) = 1/(q squared) provide infinite solutions?

With f(q) = 1/(q squared) we follow the same method to get:

But this time we have:

Therefore we have a convergent series divided by a convergent series which means:

So we can conclude that f(q) = 1/(q squared) which generated an error bound of 1/(q cubed) was too ambitious as an error bound – i.e there will not be infinite solutions in p and q for a given irrational number.  There may be solutions out there but they will be rare.

Understanding mathematicians 

You can watch the Numberphile video where James Maynard talks through the background of his investigation and also get an idea what a mathematician feels like when they solve a problem like this!

When do 2 squares equal 2 cubes?

Following on from the hollow square investigation this time I will investigate what numbers can be written as both the sum of 2 squares, 2 cubes and 2 powers of 4. i.e a2+b2 = c3+d3 = e4+f4.

Geometrically we can think of this as trying to find an array of balls such that we can arrange them into 2 squares, or we can rearrange them and stack them to form 2 cubes, or indeed we can arrange them into 2 4-dimensional cubes. I’ll add the constraints that all of a,b,c,d,e,f should be greater than 1 and that the pair of squares or cubes (etc) must be distinct. Therefore we can’t for example have 2 squares the same size.

Infinite solutions

Let’s look at why we can easily find infinite solutions if the squares or cubes (etc) can be the same size.

We want to find solutions to:
a2+b2 = c3+d3 = e4+f4.

so we look at the powers 2,3,4 which have LCM of 12. Therefore if we choose powers with the same base we can find a solution. For example we chose to work with base 2. Therefore we choose

a = 26, b = 26, which gives 212+212
c = 24, d = 24, which gives 212+212
e = 23, f = 23, which gives 212+212

Clearly these will be the same. So we can choose any base we wish, and make the powers into the same multiples of 12 to find infinite solutions.

Writing some code

Here is some code that will find some other solutions:

for a in range(2, 200):
 for b in range(2,200):

for j in list1:
 for c in range(2,200):
  for d in range(2,200):
   if c**3+d**3 == j:

for k in list2:
 for e in range(2,200):
  for f in range(2,200):
   if k == e**4+f**4:

This returns the following solutions: 8192, 18737, 76832. Of these we reject the first as this is the solution 212+212 which we found earlier and which uses repeated values for the squares, cubes and powers of 4. The 3rd solution we also reject as this is formed by 14 4 + 14 4. Therefore the only solution up to 79202 (we checked every value up to and including 1992 + 1992) is:

18737 = 642+1212 = 173+243 = 114+84.

Therefore if we had 18,737 balls we could arrange them into 2 squares, a 64×64 square and a 121×121 square. Alternatively we could rearrange them into 2 cubes, one 17x17x17 and one 24x24x24. Or we could enter a higher dimensional space and create 2 tesseracts one with sides 11x11x11x11 and the other with 14x14x14x14.

With only 1 solution for around the first 80,000 numbers it looks like these numbers are quite rare – could you find another one? And could you find one that also satisfies g5+h5?

Hollow Cubes investigation

Hollow cubes like the picture above [reference] are an extension of the hollow squares investigation done previously.  This time we can imagine a 3 dimensional stack of soldiers, and so try to work out which numbers of soldiers can be arranged into hollow cubes.

Therefore what we need to find is what numbers can be formed from a3-b3

Python code

We can write some Python3 code to find this out (this can be run here):

for k in range(1,200):

 for a in range(0, 100):
  for b in range(0,100):
   if a**3-b**3 == k :

This gives the following: (the first number is the number of soldiers and the 2 subsequent numbers are the 2 cubes).

1 1 0
7 2 1
8 2 0
19 3 2
26 3 1
27 3 0
37 4 3
56 4 2
61 5 4
63 4 1
64 4 0
91 6 5
98 5 3
117 5 2
124 5 1
125 5 0
127 7 6
152 6 4
169 8 7
189 6 3

We could perhaps investigate any patterns in these numbers, or explore how we can predict when a hollow cube has more than one solution. I’ll investigate which numbers can be written as both a hollow square and also a hollow cube.

Hollow squares and hollow cubes

for a in range(2, 50):
 for b in range(2,50):
  if a**2-b**2 !=0:
   if a**2-b**2 > 0:

for j in list1:
 for c in range(2,50):
  for d in range(2,50):
   if c**3-d**3 == j:

This returns the following numbers which can all be written as both hollow squares and hollow cubes.

[56, 91, 19, 117, 189, 56, 208, 189, 217, 37, 279, 152, 117, 448, 513, 504, 448, 504, 387, 665, 504, 208, 875, 819, 936, 817, 61, 999, 988, 448, 728, 513, 189, 1216, 936, 784, 335, 469, 1323, 819, 1512, 1352, 1197, 992, 296, 152, 1519, 1512, 1197, 657, 1664, 1323, 1647, 1736, 1701, 1664, 936, 504, 2107, 1387, 1216, 1027, 91, 2015, 279, 2232]

Hollow squares, cubes and hypercubes

Taking this further, can we find any number which can be written as a hollow square, hollow cube and hollow hypercube (4 dimensional cube)? This would require our soldiers to be able to be stretch out into a 4th dimensional space – but let’s see if it’s theoretically possible.

Here’s the extra code to type:

for a in range(2, 200):
 for b in range(2,200):
  if a**2-b**2 !=0:
   if a**2-b**2 > 0:

for j in list1:
 for c in range(2,200):
  for d in range(2,200):
   if c**3-d**3 == j:

for k in list2:
 for e in range(2,200):
  for f in range(2,200):
   if k == e**4-f**4:

Very pleasingly this does indeed find some solutions:

9919: Which can be formed as either 1002-92 or 223-93 or 104-34.

14625: Which can be formed as either 1212-42 or 253-103 or 114-24.

Given that these took some time to find, I think it’ll require a lot of computer power (or a better designed code) to find any number which is a hollow square, hollow cube, hollow hypercube and hollow 5-dimensional cube, but I would expect that there is a number out there that satisfies all criteria. Maybe you can find it?

Ramanujan’s Taxi Cabs and the Sum of 2 Cubes

The Indian mathematician Ramanujan (picture cite: Wikipedia) is renowned as one of great self-taught mathematical prodigies.  His correspondence with the renowned mathematician G. H Hardy led him to being invited to study in England, though whilst there he fell sick.  Visiting him in hospital, Hardy remarked that the taxi that had brought him to the hospital had a very “rather dull number” – number 1729.  Ramanujan remarked in reply, ” No Hardy, it’s a very interesting number!  It’s the smallest number expressible as the sum of 2 cubes in 2 different ways!”

Ramanujan was profoundly interested in number theory – the study of integers and patterns inherent within them.  The general problem referenced above is finding integer solutions to the below equation for given values of A:

In the case that A = 1729, we have 2 possible ways of finding distinct integer solutions:

The smallest number which can be formed through 3 distinct (positive) integer solutions to the equation is A = 87, 539, 319.

Although this began as a number theory problem it has close links with both graphs and group theory – and it is from these fields that mathematicians have gained a deeper understanding as to the nature of its solutions.  The modern field of elliptical curve cryptography is closely related to the ideas below and provides a very secure method of encrypting data.

We start by sketching the graph of:

For some given integer value of A. We will notice that the graph has a line of symmetry around y = x and also an asymptote at y = -x.  If we plot:

We can see that both our integer solutions to this problem (1,12) and (9,10) lie on the curve:

Group theory

Groups can be considered as sets which follow a set number of rules with regards to operations like multiplication, addition etc.  Establishing that a set is a group then allows certain properties to be inferred.  If we can establish the following rules hold then we can create an Abelian group.  If we start with a set A and and operation Θ.

1) Identity. For an element e in A, we have a Θ e = a for all a in A.

(for example 0 is the identity element for the addition operation for the set of integers numbers. a+0 = a for all a in the real numbers).

2) Closure.  For all elements a,b in A, a Θ b = c, where c is also in A.

(For example with the addition operation, the addition of 2 integers numbers is still an integer)

3) Associativity. For all elements a,b,c in A, (a Θ b) Θ c = a Θ (b Θ c)

(For example with the addition operation, (1+2) + 3 = 1 + (2+3) )

4) Inverse.  For each a in A there exists a b in A such that a Θ b = b Θ a = e.  Where e is the identity.

(For example with the addition operation, 4+-4 = -4+4 = 0.  0 is the identity element for addition)

5) Commutativity. For all elements a,b in A, a Θ b = b Θ a

(For example with the addition operation 1+2 = 2+1).

As we have seen, the set of integers under the operation addition forms an abelian group.

Establishing a group

So, let’s see if we can establish a Abelian group based around the rational coordinates on our graph.  We can demonstrate with the graph:

We then take 2 coordinate points with rational coordinates (i.e coordinates that can be written as a fraction of integers).  In this case A (1,12) and B (9,10).

We then draw the line through A and B.  This will intersect the graph in a 3rd point, C (except in a special case to be looked at in a minute).

We then reflect this new point C in the line y = x, giving us C’.

In this case C’ is the point  (46/3, -37/3)

We therefore define addition (our operation Θ) in this group as:

A + B = C’.

(1,12) + (9,10) = (46/3, -37/3).

We now need to deal with the special case when a line joining 2 points on the curve does not intersect the curve again.  This will happen whenever the gradient of this line is -1, which will make it parallel to the graph’s asymptote y = -x.

In this case we affix a special point at infinity to the Cartesian (x,y) plane.  We define this point as the point through which all lines with gradient -1 intersect.  Therefore in our expanded geometry, the line through AB will intersect the curve at this point at infinity. Let’s call our special point  Φ.  Now we have a new geometry,  the (x,y) plane affixed with Φ.

We can now create an Abelian group.  For any 2 rational points P(x,y), Q(x,y) we will have:

1) Identity.  P + Φ = Φ + P = P

2) Closure.  P + Q = R. (Where R(x,y) is also a rational point on the curve)

3) Associativity. (P+Q) + R = P+(Q+R)

4) Inverse.  P + (-P) = Φ

5) Commutativity.  P+Q = Q+P

Understanding the identity

Let’s see if we can understand some of these.  For the identity, if we have a point A on the line and the point at infinity then this will contain the line with gradient -1.  Therefore the line between the point at infinity and A will intersect the curve again at B.  Our new point, B’ will be created by reflecting this point in the line y = x.  This gets us back to point A.  Therefore P + Φ = P as required.

Understanding the inverse

With the inverse of our point P(x,y) given as -P = (-x,-y) we can see that this is the reflection in the line y = x.  We can see that we we join up the 2 points reflected in the line y = x we will have a line with slope -1, which will intersect with the curve at our point at infinity.  Therefore P + (-P) = Φ.

Through our graphical understanding the commutativity rule also follows immediately, It doesn’t matter which of the 2 points come first when we draw a line that connects them, therefore P+Q = Q+P.

Understanding associativity and closure

Neither associativity nor closure are obvious from our graph.  We could check individual points to show that (P+Q) + R = P+(Q+R), but it would be harder to explain why this always held.  Equally whilst it’s clear that P+Q will always create a point on the curve it’s not obvious that this will be a rational point.

In fact we do have both associativity and closure for our group as we have the following algebraic definition for our addition operation:

For a given point:

On a given curve of the form:

The addition of 2 points is given by:

In the case of our curve:

If we take P = (1,12).  P + P will be given by:

We can check this result graphically.  If P and Q are the same point, then the line that passes through both P and Q has to be the tangent to the curve at that point.  Therefore we would have:

Here the tangent at A does indeed meet the curve again – at point C, which does reflect in y = x to give us the coordinates above.

We could also find this intersection point algebraically.  If we differentiate the original curve to find the gradient when x = 1 we can find the equation of the tangent when x=1 and then substitute this back into the equation of the curve to find the intersection point.  This would give us:

We would then reverse the x and y coordinates to reflect in the line y = x.  This also gives us the same coordinates.

More generally if we have the 2 rational coordinates on the curve:

We have the algebraic formula for addition as:


If P = (1,12) and Q = (9,10), P + Q would give (after much tedious substitution!):

This agrees with the coordinates we found earlier using the much easier geometrical approach. As we can see from this formula, both coordinate points will always be rational – as they will be composed of combinations of our original rational coordinates.  For any given curve there will be a generator set of coordinates through which we can generate all other rational coordinates on the curve through our addition operation.

So, we seem to have come a long way from our original goal – finding integer solutions to an algebraic equation. Instead  we seem to have got sidetracked into studying graphs and establishing groups.  However by reinterpreting this problem as one in group theory then this then opens up many new mathematical techniques to help us understand the solutions to this problem.

A fuller introduction to this topic is the very readable, “Taxicabs and the Sum of Two Cubes” by Joseph Silverman (from which the 2 general equations were taken) .

Waging war with maths: Hollow squares

The picture above [US National Archives, Wikipedia] shows an example of the hollow square infantry formation which was used in wars over several hundred years.  The idea was to have an outer square of men, with an inner empty square.  This then allowed the men in the formation to be tightly packed, facing the enemy in all 4 directions, whilst the hollow centre allowed the men flexibility to rotate (and also was a place to hold supplies).  It was one of the infantry formations of choice against charging cavalry.

So, the question is, what groupings of men can be arranged into a hollow square?  This is a current Nrich investigation, so I thought I’d do a mini-investigation on this.

We can rethink this question as asking which numbers can be written as the difference between 2 squares. For example in the following diagram (from the Nrich task Hollow Squares)

We can see that the hollow square formation contains a larger square of 20 by 20 and a smaller hollow square of 8 by 8.  Therefore the number of men in this formation is:

202-82 = 336.

The first question we might ask therefore is how many numbers from 1-100 can be written as the difference between 2 squares?  These will all be potential formations for our army.

I wrote a quick code on Python to find all these combinations.  I included 0 as a square number (though this no longer creates a hollow square, rather just a square!). You can copy this and run it in a Python editor like

for k in range(1,50):

  for a in range(0, 100):
   for b in range(0,100):
    if a**2-b**2 == k :

This returned the following results:

1 1 0
3 2 1
4 2 0
5 3 2
7 4 3
8 3 1
9 3 0
9 5 4
11 6 5
12 4 2
13 7 6
15 4 1
15 8 7
16 4 0
16 5 3
17 9 8
19 10 9
20 6 4
21 5 2
21 11 10
23 12 11
24 5 1
24 7 5
25 5 0
25 13 12
27 6 3
27 14 13
28 8 6
29 15 14
31 16 15
32 6 2
32 9 7
33 7 4
33 17 16
35 6 1
35 18 17
36 6 0
36 10 8
37 19 18
39 8 5
39 20 19
40 7 3
40 11 9
41 21 20
43 22 21
44 12 10
45 7 2
45 9 6
45 23 22
47 24 23
48 7 1
48 8 4
48 13 11
49 7 0
49 25 24

Therefore we can see that the numbers with no solutions found are:


which are all clearly in the sequence 4n-2.

Thinking about this, we can see that this can be written as 2(2n-1) which is the product of an even number and an odd number. This means that all numbers in this sequence will require an odd factor in each of their factor pairs:

eg. 50 can be written as 10 (even) x 5 (odd) or 2 (even) x 25 (odd) etc.

But with a2-b2 = (a+b)(a-b), due to symmetries we will always end up with (a+b) and (a-b) being both even or both odd, so we can’t create a number with a factor pair of one odd and one even number. Therefore numbers in the sequence 4n-2 can’t be formed as the difference of 2 squares. There are some nicer (more formal) proofs of this here.

A battalion with 960 soldiers

Next we are asked to find how many different ways of arranging 960 soldiers in a hollow square. So let’s modify the code first:

for a in range(0, 1000):
 for b in range(0,1000):
  if a**2-b**2 == 960 :

Which gives us the following solutions:

31 1
32 8
34 14
38 22
46 34
53 43
64 56
83 77
122 118
241 239

General patterns

We can notice that when the number of soldiers is 1,3,5,7,9,11 (2n-1) we can always find a solution with the pair n and n-1. For example, 21 can be written as 2n-1 with n = 11. Therefore we have 10 and 11 as our pair of squares. This works because 112-102 = (11+10)(11-10) returns the factor pair 21 and 1. In general it always returns the factor pair, 2n-1 and 1.

We can also notice that when the number of soldiers is 4,8,12,16,20 (4n) we can always find a solution with the pair n+1 and n-1. For example, 20 can be written as 4n with n = 5. Therefore we have 6 and 4 as our pair of squares. This works because 62-42 = (6+4)(6-4) returns the factor pair 10 and 2. In general it always returns the factor pair, 2n and 2.

And we have already shown that numbers 2,6,10,14,18,22 (4n-2) will have no solution. These 3 sequences account for all the natural numbers (as 2n-1 incorporates the 2 sequences 4n-3 and 4n-1).

So, we have found a method of always finding a hollow square formation (if one exists) as well as being able to use some computer code to find other possible solutions. There are lots of other avenues to explore here – could you find a method for finding all possible combinations for a given number of men? What happens when the hollow squares become rectangles?

Finding the volume of a rugby ball (prolate spheroid)

With the rugby union World Cup currently underway I thought I’d try and work out the volume of a rugby ball using some calculus.  This method works similarly for American football and Australian rules football.   The approach is to consider the rugby ball as an ellipse rotated 360 degrees around the x axis to create a volume of revolution.  We can find the equation of an ellipse centered at (0,0) by simply looking at the x and y intercepts.  An ellipse with y-intercept (0,b) and x intercept (a,0) will have equation:

Therefore for our rugby ball with a horizontal “radius” (vertex) of 14.2cm and a vertical “radius” (co-vertex) of 8.67cm will have equation:

We can see that when we plot this ellipse we get an equation which very closely resembles our rugby ball shape:

Therefore we can now find the volume of revolution by using the following formula:

But we can simplify matters by starting the rotation at x = 0 to find half the volume, before doubling our answer.  Therefore:

Rearranging our equation of the ellipse formula we get:

Therefore we have the following integration:

Therefore our rugby ball has a volume of around 4.5 litres.  We can compare this with the volume of a football (soccer ball) – which has a radius of around 10.5cm, therefore a volume of around 4800 cubic centimeters.

We can find the general volume of any rugby ball (mathematically defined as a prolate spheroid) by the following generalization:

We can see that this is very closely related to the formula for the volume of a sphere, which makes sense as the prolate spheroid behaves like a sphere deformed across its axes. Our prolate spheroid has “radii” b, b and a – therefore r cubed in the sphere formula becomes b squared a.

Prolate spheroids in nature

The image above [wiki image NASA] is of the Crab Nebula – a distant Supernova remnant around 6500 light years away.  The shape of Crab Nebula is described as a prolate spheroid.

Website Stats


Exploration Guide

A comprehensive 63 page pdf guide to help you get excellent marks on your maths investigation. Includes advice on how to choose a topic, over 70 hand-picked topic ideas, detailed marking criteria guidance on how to maximize your marks, common students mistakes and how to avoid them, in-depth topic examples, great technology advice to enhance your exploration, some examples of beautiful maths and much more! [Will be emailed within the same day as ordered].


Modelling and Statistics Guide

A 60 page pdf guide full of advice to help with modelling and statistics explorations. Contains an in-depth Pearson's Product investigation, and investigations using Chi Squared, Spearman's rank, t-tests, binomial and more. Also includes detailed regression techniques (linear, quadratic, cubic, trigonometric, exponential, linearization using log scales. [Will be emailed within the same day as ordered].


Online IB Tuition

Online IB Tuition

Need help with IB tuition? Spires Tutoring are the world leaders in highly qualified IB tuition across all IB subjects. They only accept 4% of tutors who apply to teach.  This means you only get genuinely top-quality IB teachers.

Revision Village

Revision Village

Revision Village is the best IB maths online resource out there for students to prepare for their exams.  They have questionbanks, practice exams, video tutorials and much more!

Exploration Guide AND Modelling and Statistics Guide

The comprehensive 63 page Exploration Guide AND the additional 60 page Modeling and Statistics Guide. [Will be emailed within the same day as ordered].


Recent Posts

Follow IB Maths Resources from British International School Phuket on