Squaring the triangle with help
October 26, 2026 at 4:24 PM by Dr. Drang
Yesterday, Numberphile released a delightful video with James Grime (redundant, I know) in which he walks us through a geometry problem first posed by Henry Dudeney in 1902. It’s known as the “Haberdasher’s Puzzle” and is reproduced in Dudeney’s 1907 book The Canterbury Puzzles. The problem was solved by C.W. McElroy after Dudeney published it in a periodical called the Weekly Dispatch.
The problem is to cut up an equilateral triangle into pieces that can be translated and rotated (not flipped) to fit together into a square. The minimum number of pieces that allow you to do this is four, and here’s the arrangement shown in the video:

What James doesn’t do in the video is explain how you position the cuts. Dudeney shows a straightedge-and-compass construction in his book, but I wanted an algebraic solution. This turned out to be more complicated than I anticipated, but I had Mathematica to keep track of the messy algebra.
Let’s start with the equilateral triangle and its component pieces. The points that define the vertices of the triangle and cut lines are given the labels A through J (to avoid confusion, I is omitted).

The lines GJ and DH are perpendicular to Line EF.
To make the explanation simpler, let’s jump to the end and show how to make a square out of these components. The fun way to do it is in a series of rotations:
- Rotate the green piece 180° about Point G.
- Rotate the green and orange pieces together 180° about Point E.
- Rotate the green, orange, and blue pieces together 180° about Point D.
Here’s an illustration of the steps:

In this illustration, the red piece stays put through all the steps.
We can rotate the square to make its sides horizontal and vertical and label the various points to show where they ended up.

The vertices of the equilateral triangle have coalesced into a single point in the interior of the square. The right angles at H and J have split up to form the corners of the square.
Before we get into the algebra of the situation, let’s think about the various dimensions. The side lengths of the square, s, must be equal, so
A bit of algebra tells us that
Looking back at the drawing of the equilateral triangle, we see that the terms in the parentheses make up Line EF. Therefore, the length of EF is the side length of the square, s.
Now it’s time for some analytic geometry. We’ll put the origin of our xy coordinate system at Point A, and we’ll assume each side of the equilateral triangle has unit length. The coordinates are:
The area of the triangle is
This is the same as the area of the square, so
This will be the length of .
Points D and E are the midpoints of AC and BC:
Since we know the length of Line EF and the position of Point E, we can calculate the position of Point F along Line AB:
As I said, it’s kind of messy, but that’s what Mathematica is for. To six decimal places, the x coordinate is 0.254508. This is almost directly under Point D, but not quite.
Now we need the position of Point G. As it happens, it’s exactly unit to the right of Point F:
To six decimal places, this is 0.754508.
How do we know this? Consider this drawing:

The light green triangle, DEH, is congruent to the dark green triangle, GFJ. We know this because:
- The right angle at H matches the right angle at J.
- The length of DH is equal to the length of GJ (see the discussion above).
- The angle at D matches the angle at G because DE is parallel to FG and DH is parallel to GJ.
We therefore have an angle-side-angle congruence. The light green triangle is a duplicate of the dark green triangle, rotated 180° and moved up so its horizontal side is aligned with DE. The distance between D and E is , so that must also be the distance between F and G.
With the locations of F and G known, we can find H and J by running lines perpendicular to EF that intersect F and G. The full equations for the positions of H and J are even messier than those of F and G, so I’ll just give the six-place decimal approximations:
If you want to go through the Mathematica that generated these results and the graphics, here it is: