From The Sunday Times, 10th September 2017 [link] [link]
Three expert logicians played a game with a set of twenty-one cards each containing a different two-figure prime number. Each drew a card and held it up so that they could not see their own card but could see the others. Alf, Bert and Charlie in turn were then asked two questions, namely “Is your number the smallest of the three?” and “Is your number the largest of the three?”. In the first round all three answered “Don’t know” to both questions. The same happened in rounds two and three. In round four Alf answered “Don’t know” to the first question.
What did Alf answer to the second question and what numbers did Bert and Charlie have?
News
When I started the S2T2 site (in February 2019), I already had notes for a number of Teaser puzzles that I had solved at the time of publication. And since then I have been steadily posting my notes for these puzzles to the site. This puzzle completes the accumulation of these notes, so there is now a complete archive of puzzles I solved at the time of publication from July 2015 to present.
I shall continue to post puzzles from 2011 – 2015 corresponding to the collections of Teasers published as books in 2019 and 2020 (see: [Books]), but these puzzles will be new to me.
Also, the posting of this puzzle also means that all puzzles from Teaser 2831 onwards are available on S2T2. Earlier Teaser puzzles are available via The Sunday Times Digital Archive (which is my source for older puzzles on the site).
[teaser2868]
Jim Randell 4:07 pm on 24 June 2022 Permalink |
This Python program runs in 61ms. (Internal run time is 862µs).
Run: [ @replit ]
from datetime import date from enigma import (Accumulator, irange, product, tuples, catch, div, printf) # generate "product dates" in the 21st century def generate(): # consider each possible D, M pairing for (D, M) in product(irange(1, 31), irange(1, 12)): N = D * M d = catch(date, 2000 + N, M, D) if d is not None: yield d # find the maximum and minimum separations between consecutive dates rs = Accumulator.multi(fns=[max, min], collect=1) for (a, b) in tuples(sorted(generate()), 2): d = (b - a).days rs.accumulate_data(d, (a, b)) # output solution (L, S) = (x.value for x in rs) d = div(L, S) printf("L/S = {d} [L={L} S={S}]")Solution: The multiple is 274.
The longest interval is 4384 days (2236-12-28 → 2348-12-29 → 2360-12-30 → 2372-12-31).
The shortest interval is 16 days (2030-01-30 → 2030-02-15).
LikeLike