Brain-Teaser: Saturday’s child
From The Sunday Times, 22nd December 1957 [link]
“How old are you, John?”, I asked my friend. He replied: “My father, his elder brother and I were all born in the summer, and we were all born on the same day of the week. Although our anniversaries are on different dates, this year they all fell on a Saturday”.
“That’s very interesting”, I said, “but it isn’t very helpful, is it?”
“It should be helpful”, said John, “because when I tell you that the years of our birth are all prime numbers there is no possible doubt about my age”.
After argument, John convinced me he was right.
How old are John, his father and his uncle?
This one of the occasional Holiday Brain Teasers published in The Sunday Times prior to the start of numbered Teasers in 1961. A prize of £5 was offered.
[teaser-1957-12-22] [teaser-unnumbered]
Jim Randell 10:25 am on 20 February 2022 Permalink |
The following Python program runs in 47ms.
from datetime import (date, timedelta) from enigma import (defaultdict, primes, subsets, printf) # consider possible prime birth years years = set(primes.between(1835, 1956)) # find Saturdays in the summer of 1957 d = date(1957, 6, 1) while d.isoweekday() != 6: d += timedelta(days=1) r = defaultdict(set) while d.month < 9: # record previous years by day of the week for y in years: b = date(y, d.month, d.day) r[b.isoweekday()].add(y) d += timedelta(days=7) for (k, vs) in r.items(): if len(vs) < 3: continue # select 3 birth years (Uncle, Father, John) for (U, F, J) in subsets(sorted(vs), size=3): # siblings are within 20 years if not (F - U < 21): continue # John's father is 18-40 years older than him if not (17 < J - F < 41): continue # output solution age = lambda x: 1957 - x printf("U = {U} ({u}); F={F} ({f}); J={J} ({j})", u=age(U), f=age(F), j=age(J))I found multiple solutions to this puzzle:
The published solution is that John was 44, his father 78, and his uncle 84. Which is the last of the above solutions.
If we assume that the actual dates of birth were not on Saturdays, then this is the only remaining solution. However I don’t think the puzzle text can be read to include this additional restriction. (In fact, the title of the puzzle, “Saturday’s child”, implies that they were all born on a Saturday, and so would exclude the final solution).
This might account for comment given with the solution (5th January 1958):
LikeLike