From The Sunday Times, 18th April 1982 [link]
The Manager of a large company greeted his twelve new computer staff. “You have been given consecutive, five-digit, Staff Reference Numbers (SRN). I remember numbers by finding their prime factors, using mental arithmetic — pre-computer vintage. Why not try it? If you would each tell me what factors you have, without specifying them (and ignoring unity), I should be able to work out your SR numbers”.
John said: “My number is prime.”
Ted said ” I have two prime factors. Your number follows mine doesn’t it, Les?”
Ian said: “I also have two, one of which squared. Alan’s just before me on the list.”
Sam said: “One of mine is to the power four. The last two digits of my SRN give me the other prime factor.”
Pete said: “I’ve got one factor to the power four as well. The other one is my year of birth.”
Brian said: “My number has one prime factor cubed and two others, both squared.”
Chris said: “I’m the only one with four factors, one of which is squared. Fred’s number is one less than mine.”
Dave started to say: “Kevin’s SRN is the one after mine, which …” when the Manager interrupted. “I can now list all twelve!”
List the twelve people, by initials, in increasing order of SRNs. What is Sam’s SRN?
This was the final puzzle to go by the title “Brain teaser“. The next puzzle was “Brainteaser 1030“.
This puzzle is included in the book The Sunday Times Book of Brainteasers (1994).
[teaser1029]
Jim Randell 8:46 am on 13 July 2025 Permalink |
I get two solutions, so here is a straightforward solution to make sure I haven’t missed any thing.
But if we disallow distances of 60ft or more between any two positions on the walk (not just adjacent positions), then we can eliminate the larger of these solutions.
This Python program runs in 65ms. (Internal runtime is 5ms).
from enigma import (irange, ihypot, printf) M = 59 # max length of a path segment # let AB = EF = 2x for x in irange(1, M // 2): # e = distance E north from southern edge for e in irange(1, M): SE = ihypot(x, e) if SE is None or SE > M: continue # d = distance D is north of EF for d in irange(1, e - 1): FD = ihypot(x, d) if FD is None or FD > M: continue # p = distance P north of D for p in irange(1, M): SA = ihypot(x, e + d + p + p + d) if SA is None or SA > M: continue # total distance walked T = SE + SA + 2*FD + 4*x + 2*p printf("T={T} [SE={SE} FD={FD} SA={SA}; x={x} e={e} d={d} p={p}]")Solution: There are two viable solutions to the puzzle: 142 ft, and 220 ft.
Apparently the size of a croquet lawn is not fixed, but it should be a rectangle with sides in the ratio of 1.25.
The first of the solutions involves a playing area of 48 ft × 44 ft (ratio = 1.09).
And all positions on the route are within 60 ft of S (as indicated by the dotted line).
The second of the solutions involves a playing area of 96 ft × 42 ft (ratio = 2.29).
And B and F are further than 60 ft from S.
The published solution is: “142 feet”.
But a correction was issued with Teaser 3280:
.
LikeLike
Frits 11:38 am on 13 July 2025 Permalink |
@Jim, shouldn’t we have: e + d + p = 2.x ?
LikeLike
Jim Randell 11:56 am on 13 July 2025 Permalink |
@Frits: Why?
LikeLike
Frits 12:18 pm on 13 July 2025 Permalink |
I assumed that the lawn was square (but that isn’t specified).
LikeLike
Jim Randell 4:19 pm on 13 July 2025 Permalink |
Alternatively, using the [[
pythagorean_triples()]] function from the enigma.py library.The following Python program has an internal runtime of 122µs.
from enigma import (defaultdict, pythagorean_triples, subsets, div, printf) M = 59 # maximum length of a path segment # collect (<other>, <hypot>) sides for pythagorean triples t = defaultdict(list) for (x, y, z) in pythagorean_triples(M): t[x].append((y, z)) t[y].append((x, z)) # consider possible x values for x in sorted(t.keys()): if 2 * x > M: break # FD, SE, SA all have base x, and increasing vertical sides ts = sorted(t[x]) for ((d, FD), (e, SE), (a, SA)) in subsets(ts, size=3): p = div(a - e - 2*d, 2) if p is None or p < 1: continue # total distance walked T = SE + SA + 2*FD + 4*x + 2*p printf("T={T} [SE={SE} FD={FD} SA={SA}; x={x} e={e} d={d} p={p}]")LikeLike
Hugo 10:34 am on 21 July 2025 Permalink |
If hoop P has coordinates (0, 0) then it seems
A is at (12, -13), B is at (12, 13)
C is at (0, 8), D is at (0, -8)
E is at (-12, -13), F is at (-12, 13)
S is at (-24, -22).
It would have been kind of them to tell us that all the distances, including x and y separations, are integers.
LikeLike