def toRoman(i): a = {"M":1000,"D":500,"C":100,"L":50,"X":10,"V":5,"I":1,"IX":9,"XL":40,"CD":400,"CM":900,"XC":90,"IV":4} b = ["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"] idx = 0 s = "" while i>0: while (i-a[b[idx]])>=0: s=s+b[idx] i=i-int(a[b[idx]]) d=a[b[idx]] if i==0: break idx=idx+1 s=s.replace("LXL","XC") return s print(toRoman(1978)) print(toRoman(2000)) print(toRoman(2012))