题解 | 将真分数分解为埃及分数
a, b = map(int, input().split('/'))
ans = []
def get_ans(a, b):
if b%a == 0:
ans.append(f'1/{b//a}')
else:
# 找出最接近当前分数且小于该分数的1/x
# a/b变成1/?的形式直接用b/a即1/(b/a),因为要保证该值小于a/b,所以将分母向上取整
x = b//a + 1
ans.append(f'1/{x}')
# 递归继续分解a/b-1/x
get_ans(a*x-b, b*x)
# 因为x为b/a向上取整,所以b/a < x < b/a + 1,所以0<ax-b<a,又因为ax-b始终为整数
# 所以递推式中的a(分子)会严格单调递减,最终为1,算法时间复杂度为O(a)
get_ans(a, b)
print('+'.join(ans))
