Правильно будет, разбить все чиста по разрядам положить в список а потом заново собрать число, преобразование в стринг не приветствуется, это медленно если числа будут большие
def compose_number(x, y):
result = 0
multiplier = 1
while x > 0:
result += (x % 10) * multiplier
x = x // 10
multiplier *= 10
multiplier = 1
while y > 0:
result += (y % 10) * multiplier
y = y // 10
multiplier *= 10
return result
# Example usage
x = 123
y = 456
result = compose_number(x, y)
print(result) # 123456