Roman Arithmetic

When in Rome, do as the Romans do!

Roman Numerals

Roman Numerals were used in Europe until the 18th century and even today in certain applications. Generally the only place we see them today is an alternative way of expressing a given Natural Number such as year, or hour on a clock, or Superbowl number.

Roman Numerals are not a positional system and contain no symbol of zero. Rather, they are an additive system with each symbol taking on a definite numeric value regardless of where it appears. Actually there a few subtractive rules that makes writing a value somewhat more compact that do depend upon position relative to another symbol.

The symbols and their values are:


The table can be extended to larger values by using the convention that a bar over a symbol indicates "1000 times:"


For our purpose we will generally utilize values that are sufficiently small to be written without the "barred" symbols.

While a particular symbol takes on a given value regardless of its position, it is customary to write the number from left-to-right with the "largest" symbols first.

A Roman value of, as an example: DCCLXVII

would be:

500 + 100 + 100 + 50 + 10 + 5 + 1 + 1 = 767

Of course, the Romans would not have been able to think in terms of our numeric values. They could only manipulate the symbols directly. As an example, they would not have known that VV is an X because 5 + 5 = 10. They would have needed to memorize and use a grouping equivalence table:

IIIII  is equivalent to  V
VVis equivalent toX
XXXXXis equivalent toL
LLis equivalent toC
CCCCCis equivalent toD
DDis equivalent toM

Such an equivalence would have reduced the number of symbols in a number. As an example, 600 could be written as CCCCCC (or 100+100+100+100+100+100). This would have been "simplified" by the equivalence rules to the properly written DC (or 500+100). For that matter, 600 could be expressed as 12 L's or 60 X's or 120 V's or 600 I's or some combination as long as the sum of all the characters totaled 600. In all cases, by applying the equivalence rules to shorten the expression by replacing several symbols with one we would get DC.

Simply applying the rules so far could lead to a Roman value such as VIIII (or 9). To write this more compactly, we use the convention that we can "subtract" a symbol representing a 1, 10, or 100 from the next two higher symbols, respectively, by writing the smaller to the left. Therefore the only subtractive forms are:

writeinstead ofvalue

Therefore, as an example: MCMXCIV

would be:

1000 + 900 + 90 + 4 = 1994

The 900, of course, comes from the pair of symbols: CM.

The Roman value is equivalent to: MDCCCCLXXXXIIII. While this is less compact, we shall see that this equivalent form without any subtractives can be useful.

By the way, not every source agrees to some of the details of Roman Numerals. As an example, we could expand the definition of a subtractive and form 99 as IC rather than XCIX as we would according to the rules above. Indeed, it is not clear if the Romans actually used the subtractives to write the numbers compactly.


Conversion to and from ordinary numbers is accomplished rather easily.

from Roman

Simply add up the values of the Roman symbols. Of course, if a subtractive appears with a I, X, or C to the left of a "larger" symbol, we need to substitute the pair for the correct numeric value.

to Roman

Start by removing the largest Roman values first and subtracting the removed value until we have converted the entire value. We keep trying to remove a given Roman value until we cannot, then we try the next smaller one. As an example:

valuesymbol to try result value leftRoman value
2349M or 1000yes1349M
1349M or 1000yes349MM
349M or 1000no349MM
349D or 500no349MM
349C or 100yes249MMC
249C or 100yes149MMCC
149C or 100yes49MMCCC
49C or 100no49MMCCC
49L or 50no49MMCCC
49X or 10yes39MMCCCX
39X or 10yes29MMCCCXX
29X or 10yes19MMCCCXXX
19X or 10yes9MMCCCXXXX
9X or 10no9MMCCCXXXX

The table above would indicate the steps a computer would move through. A human would normally take some short cuts by lumping. As an example, we readily see that there are two "thousands" in the original value and would immediately write down: MM. There are three "hundreds" so we get MMCCC, etc until we get the entire number converted.

There is one more step we need to do. We need to substitute for any subtractive values. To do this we proceed right-to-left and look for four of the same symbol. Since there are four I's we check the next symbol on the left and substitute IX for the VIIII. (Note, if the Roman value were something like, MDIIII, we could not utilize the D so we would end up with MDIV.) After making this substitution we have: MMCCCXXXXIX.

In this value there are four X's with a preceding C. These X's become XL. Thus the final Roman numeral value is: MMCCCXLIX.


If you were asked to add two Roman valves such as CXXII + LXI, you would probably convert these two values to regular numbers, add them (122 + 61 = 183), and finally convert back to Roman Numerals: CLXXXIII. This is because it is relatively easy to convert and we know how to add ordinary decimal numbers.

The Romans could not do this! They needed a method of manipulating the Roman symbols directly to achieve the addition!

It turns out that an algorithm for adding Roman numbers directly is actually quite easy. This was fortunate for the Roman engineers and accountants.

The algorithm has just five steps:

  1. Substitute for any subtractives in both values; that is; "uncompact" the Roman values.

  2. Put the two values together—catenate them.

  3. Sort the symbols in order from left-to-right with the "largest" symbols on the left.

  4. Starting with the right end, combine groups of the same symbols that can make a "larger" one and substitute the single larger one.

  5. Compact the result by substituting subtractives where possible.

As an example, perform CCCLXIX + DCCCXLV.

 1.Substitute for any subtractives to obtain:CCCLXVIIII + DCCCXXXXV
 2.Catenate to obtain:CCCLXVIIIIDCCCXXXXV
 4.Combine groups to obtain:DCCCCCCLXXXXXXIIII
 5.Substitute any subtractives to obtain:MCCXIV

You can verify that this is indeed the correct by converting the values to regular notation: 369 + 845 = 1214.


Subtraction directly is also reasonably easy, but there is a process akin to "borrowing" that needs to be included. If addition is accomplished by putting the two values together to form a result, subtraction is accomplished by "crossing out" symbols in the value that is being subtracted in the starting value.

Here is a simple example: LXVIII − XII. In the first value, LXVIII "cross out" or remove common symbols: LXVIII or, in final form, LVI.

We will assume that the subtraction is possible; that is, the result is 1 or larger. (Note, Roman Numerals cannot express zero or negative numbers.)

The algorithm becomes:

  1. Substitute for any subtractives in both values.

  2. Any symbols occurring in the second value are "crossed out" in the first.
    1. If the symbol appears in the first, simply cross it out.
    2. If not, then convert a "larger" symbol into appropriate multiples of the needed one, then cross out.

  3. Rewrite without the crossed out symbols.

  4. Check for any groupings of the same symbol that needs to be replaced with a "larger" one.

  5. Compact the result by substituting subtractives where possible.
As an example, perform CXXIX − XLIII.

 1.Substitute for any subtractives to obtain:CXXVIIII − XXXXIII
 2.a.  cross out common symbols:CXXVIIII and XXXXIII
  b.  need X's, convert C to LXXXXXLXXXXXXXVIIII and XXXXIII
 4.Check for grouping:LXXXVI
 5.Substitute any subtractives to obtain:LXXXVI

You can verify that this is indeed the correct result by converting the values to regular notation: 129 − 43 = 86.

The "borrowing" rule 2b above may need to take on a slightly more complicated approach. Consider D − X. The D must be replaced with a series of symbols that includes an X. It becomes: CCCCC which in turn becomes CCCCLL which finally becomes CCCCLXXXXX. After "crossing out" the common symbols, the result is CCCCLXXXX with a final compact answer of CDXC.

If the conversion in step 2 is done carefully, then there should not be anything for step 4 to do. That is, it should be possible always to introduce a minimum number of needed symbols during step 2.


Multiplication is rather obvious once you realize that the Roman symbols are additive; that is, CXI is really C + X + I. To multiply two multinomial expressions in algebra like (a+b)(x+y+z) we multiply each term in the first by every term in the second and add the results. This is the approach for multiplying Roman numbers.

First we need a multiplication table. Due to the nature of the values of the Roman symbols (every value involves only 5's and 10's) this is easy to form and learn:

 times IVXLCD

The value V, of course, may be written as MMMMM.

The algorithm for multiplication is very similar to the one for addition with just five steps:

  1. Substitute for any subtractives in both values; that is; "uncompact" the Roman values.

  2. For each symbol in one value form the product with every symbol in the second and catenate them all together.

  3. Sort the symbols in order from left-to-right with the "largest" symbols on the left.

  4. Starting with the right end, combine groups of the same symbols that can make a "larger" one and substitute the single larger one.

  5. Compact the result by substituting subtractives where possible.
As an example, perform XXI•XVII.

 1.Substitute for any subtractives to obtain:XXI•XVII
 2.Form products and catenate to obtain:CLXX CLXX XVII
 3.Sort to obtain:CCLLXXXXXVII
 4.Combine groups to obtain:CCLLLVII
 5.Substitute any subtractives to obtain:CCCLVII

In step two, we get X "times" XVII to obtain CLXX. The second X in the first value gives the same, and finally the I "times" gives XVII. It is these three values that are catenated together to form the result. (Note the catenation performs the addition of the intermediate partial products.)

You can verify that this is indeed the correct by converting the values to regular notation: 21•17 = 357.


Division is somewhat more complicated. Any process should take the two values and produce a quotient and a remainder. Since we cannot represent a zero, a remainder of zero will be simply "no remainder."

Essentially, we can perform division by repeated subtraction. If we count the number of times we can subtract the divisor until the dividend becomes smaller than the divisor, the quotient is the count we get and the remainder is what is left. As an example, 39 divided by 8 gives us:

 value  can we subtract 8?  result  count 

The answer for 39 divided by 8 is a quotient of 4 and a reminder of 7.

This process should work in any notation that we can perform subtraction including Roman values.

However, consider the work involved if we divide 2417 by 17! (Quotient is 142 with a remainder of 3.)

If we really did this with regular numbers we could save considerable work by "shifting" the divisor by multiplying by a power of 10. We see that if we start with 100•17 = 1700. When we count as we subtract, we will count by 100's. When this value is too large, we divide by 10 and count by 10's, then finally divide again by 10's and count by 1's.

 starting value  trial subtractor  can we subtract it?  result  count 
717170yes547 100+10=110 

The quotient is 142 and the remainder is 3. This involves 10 steps rather than the 142 steps needed if we simply subtracted 17 over and over!

We took advantage of the fact that with decimal numbers we can multiply by 10 quite easily by simply catenating a zero to the right.

With Roman numerals we can easily multiply a Roman value by C or X or even L or V. Each symbol in the original is replaced a single or set of symbols according to the multiplication table above. We can subtract by "crossing out." Counting is performed by catenation.

We do need one additional process—we need to be able to determine if one Roman number is larger than another.

This "subprocess" is not hard. It is based upon: "If a number contains more of a given symbol, then it is larger." This will be true if we proceed from the "largest" to the "smallest" symbols ignoring those that contain the same number of a symbol until we find the first occurence where there is more of one.

As an example, MMCXXXVI is smaller than MMCCCCXVI because the second contains more C's.
And MMMDXXXVI is larger than MMMCCCCLVII because the first contains more D's.
In both the cases the M's cannot decide the answer because there are the same number in each of the pairs.

Let us try dividing MMMDCCIV by XIV.

The first step is to rewrite these without subtractives: MMMDCCIIII and XIIII

Next form multiples of the divisor:


The last one is clearly too large—contains more M's than the dividend. Therefore we start out subtraction process with the "C times."

 starting value    trial subtractor      starting value   
   after "borrowing"
 after "crossing out"     count    

We are done! The quotient is CCLXIIII or CCLXIV and the remainder is VIII.

If the divisor divided the dividend exactly then the last "crossing out" step would be complete with nothing left.


Did the Romans actually calculate using these exact procedures? Probably not. They may have utilized shortcuts and other schemes. However, the above processes do perform the arithmetic operations by manipulating the symbols of the Roman written values directly without first converting them to our decimal representation. In many respects these Roman procedures are easier than the corresponding ones for ordinary numbers since they involve only processes such as catenation, arranging the symbols in order, grouping symbols, "borrowing", and "crossing out."

It is important to remember that the Romans did not think in terms of our familiar numbers—they thought only in terms of the Roman Numbers. They were familiar with numbers such as XIII and MCMLXVIII directly without thinking these were 13 and 1968. They had a lifetime of experience with numbers represented only as Roman Numerals.

© Lawrence E. Turner, 2007