Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def int_to_roman(n):
- string=''
- symbol=['M','D','C','L','X','V','I']
- value = [1000,500,100,50,10,5,1]
- num = 10 ** (len(str(n)) - 1)
- quo = n // num
- rem = n % num
- if quo in [0,1,2,3]:
- string = string + symbol[value.index(num)] * quo
- elif quo in [4,5,6,7,8]:
- tem_str = symbol[value.index(num)] + symbol[value.index(num) - 1] + symbol[value.index(num)] * 3
- string = string + tem_str[(min(quo,5) - 4) : (max(quo,5) - 3)]
- else:
- string = string + symbol[value.index(num)] + symbol[value.index(num) - 2]
- if rem == 0:
- return string
- else:
- string = string + int_to_roman(rem)
- return string
- try:
- n = int(input('Give natural number (written in Arabic numerals, greater than zero and less than 4000):'))
- if not (0 < n < 4000):
- raise NameError('Out of range')
- print(int_to_roman(n))
- except NameError as name:
- sys.exit(name)
- except ValueError as exception:
- sys.exit(exception)
- except Exception as exception:
- print(exception.__class__)
Add Comment
Please, Sign In to add comment