From The Sunday Times, 25th December 1949 [link]
Many readers will recall the problem of constructing the integers each by means of four fours, with the usual mathematical signs. For example:
17 = (4×4) + 4/4
71 = (4! + 4.4)/.4
Competitors are invited to submit a continuous series of integers so constructed, beginning with 1 and proceeding, without gaps, as far as possible.
A follow-up was posted on 1st January 1950, to elaborate on the allowed constructions (although it is not as explicit as it could have been): [link]
The problem set was that of constructing a continuous series of integers each by means of four fours, “with the usual mathematical signs”. Several readers have asked for a closer definition of the phrase quoted.
It covers all signs (not themselves letters or numbers other than 4) which “every schoolboy knows”. It therefore includes: addition, subtraction, multiplication and division signs, square roots (and fourth roots), fourth powers, factorial signs, decimal points and recurring points, and combinations of these. It does not include gamma functions, logs or anti-logs, permutations or combinations, or trigonometrical functions. Nor does it include (as some hopeful readers have permitted themselves to believe) the use of square brackets to indicate “the integral part of”.
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 guineas was offered for the longest list.
[teaser-1949-12-25] [teaser-unnumbered]
Jim Randell 11:26 am on 22 February 2022 Permalink |
The grid is (of course) to be completed using Roman numerals.
The following Python program runs in 50ms.
Run: [ @replit ]
from enigma import (int2roman, roman2int, irange, divisors, is_prime, catch, printf) # find length k romans def romans(ns, k=3): for n in ns: r = int2roman(n) if len(r) == k: yield r # multiples for i across n = roman2int('XXXVII') m1as = list(romans(irange(n, 5000, step=n))) # multiples for ii across n = roman2int('LXXIII') m2as = list(romans(irange(n, 5000, step=n))) # multiples for ii down n = roman2int('VII') m2ds = list(romans(irange(n, 5000, step=n))) # squares sqs = list(romans(i * i for i in irange(1, 70))) # i down (= ADG) is a square for (A, D, G) in sqs: # ii across is a multiple of 73 for (D_, E, F) in m2as: if D_ != D: continue # i across is a multiple of 37 for (A_, B, C) in m1as: if A_ != A: continue # ii down is a multiple of 7 for (B_, E_, H) in m2ds: if B_ != B or E_ != E: continue # iii across is a non-prime factor of i down for (G_, H_, I) in romans(d for d in divisors(roman2int(A + D + G)) if not is_prime(d)): if G_ != G or H_ != H: continue # answer (must be valid roman) ans = catch(roman2int, C + F + I) if ans is None: continue # output solution printf("ans = {ans} [{A} {B} {C} / {D} {E} {F} / {G} {H} {I}]")Solution: Calpurnia is 19.
The completed grid looks like this:
LikeLike
Jim Randell 1:54 pm on 22 February 2022 Permalink |
Manually:
There is only one length 3 multiple of 73 (for II across):
And there are only three length 3 squares (for I down):
Of these, only MDC interlocks with DXI.
There are only three length 3 multiple of 37 (for I across):
Of these, only MCX interlocks with MDC.
Which leaves II down = “a multiple of VII” that matches “CX_”, it must be:
And III across = “a non-prime divisor of 1600”, that matches “CL_”, it must be:
The grid is now complete and III down = XIX = 19.
LikeLike