Hi! Maybe you can use this algorithm: Define a dictionary with these elements: 1000:'M', 900:'CM', 500: 'D', 400: 'CD', 100:"C", 90:'XC', 50:'L', 40:'XL', 10:'X', 9:'IX', 5:'V', 4:'IV', 1:'I' Using this dictionary (romansDic), you define a recursive function: toRomans(number){  i = return the greatest key less than or equal to given key from âromansDic'  .  if (number == i ){ return romansDic.get(number) }  return string_concat(romansDic.get(i), toRomans(number-i)) } Sorry for the pseudocode. Saludos Pablo. El 18 de sep. de 2020 10:46 -0300, Roelof Wobben via Pharo-users <pharo-users@lists.pharo.org>, escribió:
Op 18-9-2020 om 06:45 schreef Richard O'Keefe:
Roman numerals are much more complicated and much less consistent than most people realise. The regular M DC LX VI system is both more modern and less capable than anything the Romans would have recognised. In particular,  - in the 8th century, N (short for "nulla") was adopted for zero  - the Roman system always had fractions like S for 1/2, . for 1/12  - there were numerals for much larger numbers. Unicode code block [2150] has characters for the Roman numerals including 216C L ROMAN NUMERAL FIFTY 216D C ROMAN NUMERAL ONE HUNDRED 216E D ROMAN NUMERAL FIVE HUNDRED 216F M ROMAN NUMERAL ONE THOUSAND 2181 â ROMAN NUMERAL FIVE THOUSAND 2182 â ROMAN NUMERAL TEN THOUSAND 2187 â ROMAN NUMERAL FIFTY THOUSAND 2188 â ROMAN NUMERAL ONE HUNDRED THOUSAND (In fact these are ligated versions of forms using "apostrophic" brackets; the pattern goes as high as you want, e.g., (((|))) for a million. D and M were originally |) and (|).  There is
So the first thing is to make sure that you understand the requirements for the problem. - Are you required to produce ASCII characters, required to  produce Unicode ones, or allowed to produce either?
as far as I can see from the tests only ASCI characters.
- Are you required to support zero?
No
- Are you required to support n/12 fractions (1<=n<=11)?
NO
- Are you allowed, required, or forbidden to use the "overline" Â convention, where an overline means "multiply by 1000"? Â =-------
In the test that one is not used.
 ICCXXXIVDLXVII = 1,234,567 - Are you allowed, required, or forbidden to use "additive"  form "IIII" as well as/instead of "subtractive" form "IV"? - Are you to use upper case or lower case letters? - And so on.
the number 4 needs to be "IV"
Roelof