def convert_arabic_to_roman(arabic):
    """
    Convert an arabic literal to a roman one. Limits to 39, which is a rough
    estimate for a maximum for using roman notations in daily life.

    ..note::
        Based on https://gist.github.com/riverrun/ac91218bb1678b857c12.

    :param arabic: An arabic number, as string.
    :returns: The corresponding roman one, as string.
    """
    if int(arabic) > 39:
        return arabic

    to_roman = {
        1: 'I', 2: 'II', 3: 'III', 4: 'IV', 5: 'V', 6: 'VI', 7: 'VII',
        8: 'VIII', 9: 'IX', 10: 'X', 20: 'XX', 30: 'XXX'
    }
    roman_chars_list = []
    count = 1
    for digit in arabic[::-1]:
        digit = int(digit)
        if digit != 0:
            roman_chars_list.append(to_roman[digit * count])
        count *= 10
    return ''.join(roman_chars_list[::-1])