I’ve been reading (listening to, actually) a book on the state of scientific and technical knowledge in what has traditionally been referred to as the “Dark Ages” (roughly the 5th to 14th centuries). One of the things I became intrigued by was the use of Roman numerals for relatively complex math during this period.

## Quick Review

You’re probably familiar with Roman numerals. Conceptually, they’re easy. Letters represent numbers. To get the value of a number written in Roman numerals you simply add the individual numerals (or groups of numerals). Here are the letters you use to represent values up to 3999:

I = 1

V = 5

X = 10

L = 50

C = 100

D = 500

M = 1000

Values are read from left to right, and it is traditional to put the larger numerals first. So III is 3, XII is 12, and DCLXVI is 666 (“let the reader understand”). One complication is that you never write the same numeral more than 3 times in a row, and that a smaller numeral appearing before a larger one means it should be subtracted from the larger value. So 14 is XIV, not XIIII. 3999 is MMMCMXCIX. That being said, the Romans weren’t real picky about how these numbers were written. For simplicity, I’m going to ignore the no-more-than-3 rule from time to time in my discussion below.

I’ll use the symbol => to indicate that I’m rearranging or simplifying.

## Adding and Subtracting

Addition with Roman numerals is easy: just put all the numerals in one group and rearrange them. So III + XVIII is IIIXVIII => XVIIIIII => XVVI => XXI.

Subtraction is similar. Convert larger digits into groups of smaller ones if needed for convenience, then just subtract similar numerals from each other. So XXI – III is XVVI – III, which is XVIIIIII – III, or XVIII.

## Doubling and Halving

Before getting into the fun stuff (multiplication and division), it helps to think about how to double and halve a value written in Roman numerals.

Doubling is just adding the number to itself. To double a number, just write two of each numeral. Twice XXI is thus XXIXXI => XXXXII => XLII. Twice III is IIIIII => VI.

Halving is similar. Divide each numeral by 2 and append the next lesser numeral if there is a remainder. This is slightly circular, since we’re saying to divide by 2 you divide by 2. If you don’t remember what half of L is, write it out as XXXXX and take half of those X’s to get XX with a remainder of half an X, which is V. To get half of 666, follow these steps:

DCLXVI

CCL + half of CLXVI

CCL + L + half of LXVI

CCL + L + XXV + half of XVI

CCL + L + XXV + V + half of VI

CCL + L + XXV + V + II + half of II

CCL + L + XXV + V + II + I

CCLLXXVVIII

=> CCCXXXIII

## Multiplication

Multiplication is a combination of doubling, halving, and adding remainders. Note that in general A ✖️ B is the same as (A / 2) ✖️ (B ✖️ 2). That is, if we double one term and halve the other term, the result is the same. In familiar terms, 8 ✖️ 3 (24) is the same as half 8 (4) times twice 3 (6). Further note that we can do that again, so:

8 ✖️ 3 = 4 ✖️ 6 = 2 ✖️ 12 = 1 ✖️ 24 = 24

Where it gets tricky with Roman numerals is handling remainders. Consider if we reversed which term was being doubled and which halved in our example above:

8 ✖️ 3 = 16 ✖️ 1.5 = 32 ✖️ .75 ….

While the first attempt actually took us all the way to the correct answer, the second appears to be getting harder and harder. Let’s look at both with Roman numerals:

**Half**

VIII

IIII

II

I

**Double**

III

VI

XII

XXIIII => XXIV

When the halving leaves a remainder, we can ignore it. I’ll mark those with an asterisk.

* drop remainder

**Half**

III

I

**Double**

VIII

XIIIIII => XVI

When we have remainders, there’s one more step. We need to add the value from the “double” column to our final result to get our true result (since we technically dropped that value when we dropped the remainder):

XVI + VIII = XVVIIII => XXIIII => XXIV

We can apply this technique to do arbitrarily complicated multiplication:

39 ✖️ 81

* drop remainder

* drop remainder

* drop remainder

* drop remainder

**Half**

XXXVIIII

XVIIII

VIIII

IIII

II

I

**Double**

LXXXI

CLXII

CCCXXIIII

DCXXXXVIII

MCCLXXXXVI

MMDLXXXXII

Now add the value from the “double” column for each odd value in the “half” column.

MMDLXXXXII + LXXXI + CLXII + CCCXXIIII = MMDCCCCLLLXXXXXXXXXXIIIIIIIII => MMMLLLVIIII => MMMCLIX

I’ll leave it to the reader to verify my work.

## Division

I’m not sure if there’s an easier way to do vision, but here’s what I came up with. First, we repeatedly double the divisor (the number by which we’re dividing) until we get a value greater than the dividend (the number that we’re dividing). We’ll keep track of the multiplier for each because we’ll need those later.

Consider 365 / 12

In Roman numerals: CCCLXV / XII

**Multiplier**

I

II

IV

VIII

XVI

XXXII

**Double**

XII

XXIV

XXXXVIII

LXXXXVI

CLXXXXII

XXXLXXXIV

exceeds dividend

We now know that XII goes into CCCLXV at least XVI times. We can make a note of that, and also subtract the doubled divisor to see what’s left:

CCCLXV – CLXXXXII = CCLLXXXXXXIIIII – CLXXXXII = CLXXIII

XII goes into CCCLXV XVI times with a remainder of CLXXIII

Now check our list of doubled divisors to see what the biggest one is that goes into the remainder (CLXXIII). It looks like LXXXXVI is the largest value that is smaller than CLXXIII. Repeat the step above. Subtract LXXXXVI from our remainder and add the multiplier to our accumulated multiplier:

CLXXIII – LXXXXVI = LLXXXXXXVVIII – LXXXXVI = LXXVII

XII goes into CCLXV XXIV times with a remainder of LXXVII

Repeating, this time using a multipler of IV and a doubled divisor of XXXXVIII:

LXXVII – XXXXVIII = XXXXXXVVIIIIIII – XXXXVIII = XXVIIII => XXIX

XII goes into CCLXV XXVIII times with a remainder of XXIX

Repeating, this time using a multiplier of II and doubled divisor XXIV:

XXVIIII – XXIIII = V

XII goes into CCLXV XXX times with a remainder of V.

Since V is less than our original divisor, that’s as far as we can go.

Again, the proof is left to the reader.

## Fractions

I’m not going to dwell on fractions except to say that the only fractions the Romans seemed to use were twelfths and halves. Each twelfth was a dot following the number. Since we coincidentally divided by 12 in the previous example, our remainder of 5 would be represented as 5 dots following XXX. I believe they were written in some kind of pattern, perhaps like we use on dice or playing cards.

Halves were represented using the letter S. So 7/12 would be “S..” or maybe “S:”.

## Conclusion

While this is fun, and while our Middle Ages ancestors could do amazing things using these simple techniques, it’s pretty clear why the hard math was being done using base-10 and place value representation.