# Sunday Maths: The Diagonal-Sum Mental Multiplication Method

This is a mental math technique to solve non-trivial integer multiplication I picked up from one of Arthur Benjamin's talks, and is widely used by other "mathemagicians" to solve large products.

It converts an n × n multiplication problem into a n² set of single digit multiplications, arithmetically identical to the "Lattice Method". However, instead of filling the lattice first and then summing each diagonal, this method calculates each sum as soon as possible - thus you only need to keep track of the bare minimum of working data and it becomes possible to do the problem entirely in your head.

Note that simpler methods can be used for multiplications that involve operands under 20 and squares which were covered in previous weeks.

The basic principle is to calculate each digit of the result from units upwards, by summing each corresponding pair of operand digits for that result digit (and adding the carry from the previous sum).

Probably best to ignore that sentence and just follow this example of 123 × 456:

```_____
123
×456
_____
```

First step is to multiply the leftmost column digits, 3×6 for the first result digit of 8, carrying the 10 over to the next digit:

```_____
123
×456
_____   3×6=18
8   (Carry 1)
``` In the whiteboard images, I have used black to show the original problem, blue to show the method, green to show mental working and red to show the final result.

The second result digit requires you to take the carried 1, add the "diagonals" of the second operand digits 2×6 and 3×5:

```_____
123
×456
_____   1 + 2×6 + 3×5 = 28
88   (Carry 2)
``` Note that in each step, we incorporate one more column from the left into the calculation, and multiply each digit with the one diagonally or vertically "opposite" it.

As you can see this is where it starts getting potentially complex. To keep it as simple as possible, I add the numbers in the order shown above, resolving each multiplication immediately and adding it to what came before:

```1 + 2×6 = 1 + 12 = 13
13 + 3×5 = 13 + 15 = 28
```

This way, I only need to keep track of two things at once - the sum in progress, and the immediate single digit multiplication.

Continuing the problem with the next digit, the carried 2, then multiply across three "lines", two diagonal and one vertical:

```_____
123
×456
_____   2 + 1×6 + 2×5 + 3×4 = 30
088   (Carry 3)
``` As we have reached the last column of the operands and are now using all the digits, we have no more columns to add in. Instead from this point on we leave out columns. For each following step, we leave out the rightmost column from our calculation.

Thus for the fourth result digit, we multiply the left two columns (diagonally), mirroring the second step:

```_____
123
×456
_____   3 + 1×5 + 2×4 = 16
6088   (Carry 1)
``` Finally, for the fifth result digit we multiply just the leftmost column, mirroring the first step:

```_____
123
×456
_____   1 + 1×4 = 5
56088
``` In summation (pun intended), to calculate 123×456 we have made 9 single-digit multiplications (the number of digits squared) and 8 simple additions. At all times the only working we had to keep track of is the ongoing sum for each digit (or the carry, when going to the next digit).