Teaser 3330: Bermuda triangles
From The Sunday Times, 19th July 2026 [link] [link]
My local estate agent was advertising a house named “Bermuda” which had a garden in the shape of a right-angled triangle containing a sundial. I went to view the property and it had nine straight and narrow footpaths. There was a path along each edge of the garden, one from each corner to the sundial and one from each edge to the sundial. Each of the latter paths was perpendicular to the edge it joined. Each path was a different whole number of feet in length, the longest being 500 feet and the two shortest being 36 and 77 feet. These two paths did not join the longest and were the only ones that were not a multiple of five feet.
What was the combined length of the nine footpaths?
[teaser3330]













Jim Randell 8:15 am on 19 July 2026 Permalink |
The paths are laid out as follows:
The shortest paths do not touch the hypotenuse, so these must be x and y (which are 36 and 77 in some order), and we can immediately calculate u (= hypot(x, y)).
And (a, b, c) is the right-angled triangle, and the longest path (= c) is the hypotenuse. As all sides must be multiples of 5, we can look for triangles with a hypotenuse of 100 and multiply the side lengths by 5.
This Python program runs in 75ms. (Internal runtime is 195µs).
from enigma import (sum_of_squares, sq, permute, ihypot, triangle_iheight, item, printf) # find the sides of the triangle (a, b, c) h = 100 # = 500 / 5 for (a, b) in sum_of_squares(sq(h), min_v=1): (a, b, c) = (a * 5, b * 5, h * 5) # the two shortest paths do not join the hypotenuse # so position S at (x, y) for (x, y) in permute([(36, 77)]): # we can calculate the paths to the corners (u, v, w) vs = (u, v, w) = (ihypot(x, y), ihypot(y, a - x), ihypot(x, b - y)) if None in vs or u % 5 > 0 or v % 5 > 0 or w % 5 > 0: continue # calculate the length of the remaining perpendicular path z = triangle_iheight(c, v, w) if z is None or z % 5 > 0: continue # calculate the total path length (es, ps) = ((a, b, c), (x, y, z)) ns = es + vs + ps t = sum(ns) # check puzzle conditions hold (different lengths, shortest 2 and longest 1) if not (len(set(ns)) == 9 and item(0, 1, -1)(sorted(ns)) == (36, 77, 500)): continue # output solution printf("t = {t} [edge = {es}; corner = {vs}; perpendicular = {ps}]")Instead of using [[
triangle_iheight()]] we can consider the big triangle to be made up from the three triangles with altitudes x, y, z. Then we have:So line 15 can be:
Solution: The combined length of the 9 paths is 2163 ft.
The paths around the edge of the garden have lengths 300 ft, 400 ft, 500 ft. (And so the triangle is a scaled-up (3, 4, 5) triangle).
The paths to the corners of the triangle have lengths 85 ft, 275 ft, 325 ft.
And the perpendicular paths have lengths 36 ft, 77 ft, 165 ft.
(In the diagram the assignments are: a = 300, b = 400, c = 500; u = 85, v = 275, w = 325; x = 36, y = 77, z = 165).
LikeLike
Frits 3:05 pm on 22 July 2026 Permalink |
@Jim, min_v can be probably set to 8 to that the resulting a and b are both greater than 36.
LikeLike
Jim Randell 9:28 am on 23 July 2026 Permalink |
@Frits: When I wrote the code I was just worried about eliminating the 0² + 100² = 100² solution. But you are right, as we already know that the shortest paths are 36 and 77 we can start from
min_v=16.LikeLike
Alex T Sutherland 10:34 am on 21 July 2026 Permalink |
Found that there are 3 Pythagorean triangles with a hypotenuse = 500.
One set can be discounted,the sides not divisible by 5.(obvious)
Another set whose vertices to sundial lengths are not divisible by 5
can be eliminated.(requires length calc)
The remaining set satisfies the requirements.
The third normal (36,77,?) can be found by equating the sum of the areas
of 3 triangles to that of the garden triangle.(both equal).
The answer I have for the total path length is a 4 digit number with the
following characteristic:-
T = abcd
3*(ab) = (cd)
Time < 1ms ( Mostly finding the distances between known points ).
LikeLike
Ellen Napier 2:43 pm on 23 July 2026 Permalink |
Seems like the last sentence of the puzzle statement is redundant.
LikeLike