This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.
%I A002963 #42 Feb 16 2025 08:32:27 %S A002963 1,2,3,3,2,3,4,5,3,2,3,4,5,5,4,5,6,7,5,4,5,6,7,7,6,7,8,9,7,6,7,8,9,9, %T A002963 8,9,10,11,9,4,5,6,7,7,6,7,8,9,7,2,3,4,5,5,4,5,6,7,5,4,5,6,7,7,6,7,8, %U A002963 9,7,6,7,8,9,9,8,9,10,11,9,8,9,10,11,11,10,11,12,13,11,4,5,6,7,7,6,7,8,9,7,2,3,4 %N A002963 Number of chisel strokes required for Roman numerals for n. %C A002963 Chisel strokes for numerals: I,1; V,2; X,2; L,2; C ( = < ),2; D,3; M,4. %C A002963 For more about Roman numerals, see A006968. %C A002963 a(A002964(n)) = n. - _Reinhard Zumkeller_, Apr 14 2013 %H A002963 Nathaniel Johnston, <a href="/A002963/b002963.txt">Table of n, a(n) for n = 1..3999</a> %H A002963 Eric Weisstein's World of Mathematics, <a href="https://mathworld.wolfram.com/RomanNumerals.html">Roman Numerals</a> %H A002963 Wikipedia, <a href="http://en.wikipedia.org/wiki/Roman_numerals">Roman numerals</a> %p A002963 with(StringTools): A002963 := proc(n) local r: r:=convert(n, roman): return add(parse(SubstituteAll( SubstituteAll( SubstituteAll( SubstituteAll( SubstituteAll( SubstituteAll( SubstituteAll(r[j], "I", "1"), "V", "2"), "X", "2"), "L", "2"), "C", "2"), "D", "3"), "M", "4")), j=1..length(r)): end: seq(A002963(n), n=1..102); # _Nathaniel Johnston_, May 18 2011 %t A002963 a[n_] := Characters[ IntegerString[n, "Roman"]] /. {"I" -> 1, "V" -> 2, "X" -> 2, "L" -> 2, "C" -> 2, "D" -> 3, "M" -> 4} // Total; Table[a[n], {n, 1, 102}] (* _Jean-François Alcover_, Sep 10 2013 *) %o A002963 (Haskell) %o A002963 a002963 = ch 0 . a061493 where %o A002963 ch s 0 = s %o A002963 ch s x = ch (s + [0,1,2,2,2,2,3,4] !! d') x' %o A002963 where (x',d) = divMod x 10; d' = fromInteger d %o A002963 -- _Reinhard Zumkeller_, Apr 14 2013 %o A002963 (PARI) {A002963(n, c=[1000, 4, 900, 6, 500, 3, 400, 5, 100, 2, 90, 4, 50, 2, 40, 4, 10, 2, 9, 3, 5, 2, 4, 3, 1, 1], s=0)= forstep(i=1, #c, 2, while(n>=c[i], n-=c[i]; s+=c[i+1])); s} \\ _M. F. Hasler_, Jul 27 2016 %o A002963 (Python) %o A002963 a002963 = lambda n: sum((d+1-(d==2))*(i%5)+(d+2-(d==1))*(i>4) if (i+1)%5 else 3+d+(d==2)*(i==9) for d,i in enumerate(map(int,str(n)[::-1]))) %o A002963 # _Nicholas Stefan Georgescu_, Feb 27 2023 %Y A002963 Cf. A119310. %Y A002963 Cf. A061493, A093783. %K A002963 base,easy,nonn,nice %O A002963 1,2 %A A002963 _N. J. A. Sloane_ %E A002963 More terms from _David W. Wilson_ %E A002963 Data double-checked by _M. F. Hasler_, Jul 27 2016