cp's OEIS Frontend

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.

A002963 Number of chisel strokes required for Roman numerals for n.

This page as a plain text file.
%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