OFFSET
1,2
COMMENTS
From Daniel Forgues, Jan 16 2015: (Start)
The Romans in the era of the Roman Empire did not have 0 as a number.
The initial "N" (nulla, meaning "none", or nihil, meaning "nothing") was used as a zero symbol in a table of Roman numerals by Bede or his colleague around 725, but even in the Middle Ages it never became a standard. (End) [Corrected by M. F. Hasler and Peter Luschny, Aug 16 2025]
3999 (MMMCMXCIX) is the largest decimal number that has a well-defined Roman numeral representation. Therefore the sequence deliberately stops there to avoid the ambiguous representations of larger numbers. - Jamie Robert Creasey, May 01 2021
The use of 'N' to indicate 0 or "none" long survived in the historic apothecaries' system of measurement, well into the 20th century, to designate quantities in pharmaceutical prescriptions. - M. F. Hasler, Aug 16 2025
LINKS
Reinhard Zumkeller, Table of n, a(n) for n = 1..3999
Gerard Schildberger, The first 3999 numbers in Roman numerals.
Eric Weisstein's World of Mathematics, Roman Numerals.
Wikipedia, Roman numerals.
Wikipedia, 0 (number) in classical antiquity.
FORMULA
a(n)=i <=> A003587(i)=n, for i in {1,...,7}, i.e., A061493 is a left inverse of A003587 on {1,...,7}. - M. F. Hasler, Jan 12 2015
EXAMPLE
a(14) = 312 because 14 = XIV in Roman, and I,V,X are coded as 1,2,3 respectively.
a(66) = 4321, LXVI is 50+10+5+1 = 66, a(44) = 3412, XLIV is -10+50-1+5 = 44
MATHEMATICA
Array[FromDigits[Characters@ RomanNumeral[#] /. {"I" -> 1, "V" -> 2, "X" -> 3, "L" -> 4, "C" -> 5, "D" -> 6, "M" -> 7}] &, 44] (* Michael De Vlieger, May 01 2021 *)
PROG
(Haskell)
a061493 n = read $ r 1 [] n :: Integer where
r _ roms 0 = roms
r p roms z = case p of
1 -> r 2 (d '1' '2' '3' m) z'
2 -> r 3 (d '3' '4' '5' m ++ roms) z'
3 -> r 4 (d '5' '6' '7' m ++ roms) z'
4 -> replicate z '7' ++ roms
where (z', m) = divMod z 10
d i j k c =
[[], [i], [i, i], [i, i, i], [i, j], [j], [j, i], [j, i, i], [j, i, i, i], [i, k]] !! c
-- Reinhard Zumkeller, Apr 14 2013
(PARI) {A061493(n, s="", c=[1000, 7, 900, 57, 500, 6, 400, 56, 100, 5, 90, 35, 50, 4, 40, 34, 10, 3, 9, 13, 5, 2, 4, 12, 1, 1])= forstep(i=1, #c, 2, while(n>=c[i], n-=c[i]; s=Str(s, c[i+1]))); eval(s)} \\ M. F. Hasler, Jan 11 2015
(Python)
def f(s, k):
return s[:2] if k==4 else (s[1]*(k>=5)+s[0]*(k%5) if k<9 else s[0]+s[2])
def a(n):
m, c, x, i = n//1000, (n%1000)//100, (n%100)//10, n%10
return int("7"*m + f("567", c) + f("345", x) + f("123", i))
print([a(n) for n in range(1, 45)]) # Michael S. Branicky, Aug 24 2022
(Python)
import roman
def A061493(n, d={ord(c):str(i) for i, c in enumerate("NIVXLCDM")}):
return int(roman.toRoman(n).translate(d)) # M. F. Hasler, Aug 16 2025
CROSSREFS
KEYWORD
easy,nonn,base,fini,full
AUTHOR
Frank Ellermann, Jun 12 2001
EXTENSIONS
0 removed again by Georg Fischer, Jan 20 2019
STATUS
approved