编写一个函数，将一个数字转换为罗马数字。

123
```python
def to_roman(num):
    roman = ''
    value_symbol_map = [
        (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')
    ]
    for value, symbol in value_symbol_map:
        while num >= value:
            roman += symbol
            num -= value
    return roman

print(to_roman(123)) # CXXIII
```

注意： 罗马数字没有“0”，因此任何算法都无法处理数字 0。