OFFSET
1,2
COMMENTS
From Daniel Forgues, Jan 16 2015: (Start)
The Romans did not have 0 as a number, which is why there was no year zero (1 B.C. is followed by 1 A.D.).
The initial "N" (nulla, meaning "nothing") was used as a zero symbol in a table of Roman numerals by Bede or his colleague around 725. (End)
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
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
CROSSREFS
KEYWORD
easy,nonn,base
AUTHOR
Frank Ellermann, Jun 12 2001
EXTENSIONS
0 removed again by Georg Fischer, Jan 20 2019
STATUS
approved