Sunday Times Teaser 2683 – House to House

by Robin Nayler

Four families (A, B, C and D) live in this order on a road with consecutively numbered houses on one side only.

The number of houses between A’s and B’s houses is a multiple of the number of houses between B’s and C’s houses.

The number of houses between A’s and C’s houses is the same multiple of the number of houses between C’s and D’s houses.

A’s house number is in the teens and D’s house number has the same digits as A’s but in reverse order.

What are the four house numbers?

1. 2. Taking A = 10 + x and D = 10.x + 1, we have B – A – 1 = k.(C – B – 1) and C – A – 1 = k.(D – C – 1) with 11 < A < B < C < D < 92 and the multiple (k) greater than one. This gives (k + 1).C = 11 + 10.k.x and (k + 1).B = 11 + x + k.(C - 1). Starting with x = 9 and k = 2 we can easily reach the solution by trial and error.

3. Here’s a Python solution (using some routines from my enigma.py library).

Removing the restriction that m is a proper multiple leads to two further solutions where C is equidistant between A and D, and B is equidistant between A and C.

• HI Jim,

I removed the unnecessary import and your earlier comment – I hope you are happy with this.

Intellectually I prefer your solution to my own as I didn’t like the use of a limited range for ‘m’ in my solution as I could not find a mathematical basis for an upper limit as low as 10.

Being overly pedantic, since B has to fit between A and C, I think the lower limit for C can be A + 4 rather than A + 2.

4. I wasn’t entirely happy with stepping C through all the available positions between A and D. It’s probably more efficient to see how many positions there are and just consider divisors of that number (where it’s possible for it to be divided it into n equal sized chunks).

This program uses the divisors() function from by enigma.py library.

And thanks for doing the edit to my previous comment.

5. 