This week I’ll talk about the solution to the final puzzle from last week — so if you haven’t tried it yet and want to, now’s the time!

For reference, here’s the puzzle:

The hints were that all circled numbers in the grid were four digits long, and that every number in the grid was used at least once. The object was to determine *two* bases: the base used to write the numbers in the list, and the base used for the circled numbers in the grid. Then the rest is easy!

To start, I chose the bases first. My first attempt was to use 41 and 19, although this didn’t quite work out (for reasons we’ll soon see). I didn’t want the numbers in the list to be *too* long, so I chose bases which weren’t too far apart. The bases happened to be prime numbers — but later on I saw that this information really doesn’t help the solver at all. No harm done, though.

Now the main issue was that I wanted the numbers both in the list *and* the grid to use only the digits 0–9. So next I used a brute-force loop to check all numbers up to 10,000,000 which only used the digits 0–9 in base 41. Of these, I checked which used only the digits 0–9 in base 19. There were only 2640 numbers — not very many, actually, out of 10,000,000. (I used *Mathematica* here, since using Python in the Sage platform would have been far too slow. Also, it is very easy in *Mathematica* to convert numbers from one base to another using the functions “IntegerDigits” and “FromDigits.”)

But what was I going to do with these numbers? I decided I wanted a solution strategy which didn’t use the ending 0 again — I had used this device twice already. I thought that if I looked for numbers which were off by just 100 in base 41 in the grid — and made sure the solver had enough clues to determine the corresponding numbers in the list — well, I’d be making progress.

Let’s look at the puzzle for a moment, so you see what’s at play here. Notice that the largest number is roughly three or four times the smallest (3 x 1 = 3 in any base larger than 3!). But there are two small numbers close to each other — 14940 and 14965 — they can’t begin with 0, naturally, and there is only *one* number you can circle in the grid beginning with a 1. So they must *at least* start with a 2. But they can’t start with a 3 or greater, or else the largest numbers would have to start with at *least* a 9 — and 7 is the largest number in the grid. Therefore the two smaller numbers must start with a 2, and the three largest must begin with a 7.

And you’ll notice that there are the two numbers 7034 and 7134 in the grid — off by 100. But here was my problem — when I looked at my list of numbers which used only the digits 0–9 in both bases 19 and 41, I couldn’t find *any* which were 100 apart in base 41.

Then I realized why. In base 41, 100 represents 41^{2} = 1681. And the base 19 digits of 1681 are 4, 12, and 9. See the problem? There’s no way to be off by 12 in the base 19 list using only the digits 0–9!

So I needed to find a base whose square could be written in base 19 using single digits. It turns out that 41 wasn’t too far off….43^{2} = 526_{19}. And if you notice, 45311 and 45837 are off by exactly 526. Recall that since these are the largest numbers, they must be the ones beginning with a 7. (Note that the other four-digit number in the grid, 7042, is between 7034 and 7134, and so must correspond to 45334.)

What does this mean algebraically? Let’s denote by *L* the base used in the number list, and let *G* be the base used in the grid. To say that being off by 100_{G} in the grid is the same as being off by 526_{L} in the list is to say that

*G*^{2} = 5 *L*^{2} + 2 *L* + 6.

So this is one relationship between *G* and *L*.

Now there are two ways to proceed. You might try to figure out another relationship between *G* and *L* using 7042 and 45334. Note that 7042 is in fact *G* – 2 more than 7034 (observe that a carry is involved), and 45334 is 23 more that 45311. This would mean that

*G* – 2 = 2 *L* + 3.

Alternatively, note that the smallest two numbers must be represented by 2154 and 2164 in the grid (2407 is too big, since the numbers are only 25 apart in base *L*). But 2154 and 2164 are just 10 apart in base *G*, so

*G* = 2 *L* + 5,

which you’ll note is equivalent to the previous equation.

But we now have two equations in two unknowns — just substitute for *G* into the quadratic, rearrange terms and simplify, and you’ll end up with the quadratic equation

*L*^{2} – 18 *L* – 19 = 0.

It’s not hard to see (just factor!) that the only positive root of this equation is *L* = 19. This means that

*G* = 2 x 19 + 5 = 43.

So we’re just about done! I’ll leave it to you to do all the conversions from one base to the other. But once we know the bases, the rest is easy.

Of course there was no way I could have created this puzzle without a computer — finding numbers which can be written with the digits 0–9 in two *different* bases is just too difficult to do by hand (at least for me). But even when this was done, it was not a trivial task. I pored over the numbers, looking for ones with the “right” digits. Since I wanted the largest numbers to begin with 7, I avoided 8’s and 9’s in the corners. I thought the solver needed some entry point without having to go down too many dead ends.

And then, well, the numbers had to *fit.* Since the corners are common to so many entries, I had to look for numbers which started and *ended* with suitable digits. This took some creative juggling!

Finally, I wanted to make sure that there were numbers differing by 100 and 10 in the grid. Again, the solver needed an entry point into the puzzle. Just writing a computer program to look at every single possibility could be done — but then why spend all the effort making a puzzle which can, in large part, be solved by hand? Just randomly picking numbers and writing them in bases 19 and 43 would certainly have been possible, but far from interesting.

If you feel adventurous enough to create your own Number Search puzzle, please comment. I’d love to see what others might do with this idea!