SP4225 MSE06E - Payment System

题目描述

矿物水生产大学的支付系统完全自动化(使用番茄编程语言编写),可以让用户输入想要提取的金额。由于教授们的薪水很高,他们可能会以指数形式输入金额。因此,如果想要提取 16 MWU(矿物水单位),可以输入 16、$2^4$ 或 $2^{2^2}$。 有一天,斯坦内斯库试图从账户提取金额,账户余额为 80 MWU。他误输入了 $2^{3^2}$,令人惊讶的是,他竟然得到了 512 MWU,尽管按理说他无法提取超过 80 MWU。 系统由两个关键模块组成:第一个模块检查账户是否有足够的资金来完成交易;第二个模块则实际发放资金。问题在于,第一个模块在处理 `^` 运算符时从左到右计算,而第二个模块从右到左运算,这才是正确的顺序。因此,第一个模块认为 $2^{3^2}$ 是 $(2^3)^2 = 64$,而第二个则认为 $2^{3^2}$ 是 $2^{(3^2)} = 512$。 你的任务是编写一个程序,帮助斯坦内斯库利用这个系统获得尽可能多的资金。如果你对系统的合法性存疑,请放心,矿物水生产大学本身就是不太道德的。 在输入文件中,将提供斯坦内斯库账户的若干余额。每个余额用单独一行表示,且为 $2$ 到 $10^{100}-1$ 的整数。 对于每个余额,你的程序要输出斯坦内斯库应该输入的表达式,帮助他获取尽量多的资金。输出需满足以下要求: - 只包含整数和 `^` 运算符。 - 能通过第一个模块的检查,同时在第二个模块中计算出的金额尽可能大。 - 不包含数字 1(因为它没什么用)。 若有多个解,输出第一个数字最小的表达式。如果仍存在多个解,则选择第二个数字最小的,依此类推。

输入格式

输入包含多行,每行一个整数,表示斯坦内斯库的账户余额。每个整数均在 2 到 $10^{100} - 1$ 范围内。

输出格式

针对每个输入的余额,输出一行斯坦内斯库应输入的表达式。该表达式应仅由整数和 `^` 运算符组成,并满足上述要求。 **本翻译由 AI 自动生成**