2014-06-28 22:58:31 +02:00
|
|
|
NUMERAL_MAPPINGS = (
|
2021-11-23 14:05:17 +01:00
|
|
|
(1000, 'M'), (900, 'CM'),
|
|
|
|
|
(500, 'D'), (400, 'CD'),
|
|
|
|
|
(100, 'C'), (90, 'XC'),
|
|
|
|
|
(50, 'L'), (40, 'XL'),
|
|
|
|
|
(10, 'X'), (9, 'IX'),
|
|
|
|
|
(5, 'V'), (4, 'IV'),
|
2015-11-08 01:40:58 +01:00
|
|
|
(1, 'I')
|
2014-06-28 22:58:31 +02:00
|
|
|
)
|
2013-08-08 16:24:31 -05:00
|
|
|
|
|
|
|
|
|
2019-06-11 11:00:08 -07:00
|
|
|
def roman(number):
|
|
|
|
|
result = ''
|
2021-11-23 14:05:17 +01:00
|
|
|
for arabic_num, roman_num in NUMERAL_MAPPINGS:
|
|
|
|
|
while number >= arabic_num:
|
|
|
|
|
result += roman_num
|
|
|
|
|
number -= arabic_num
|
2019-06-11 11:00:08 -07:00
|
|
|
return result
|