学生在数学课上经常要做的一项任务是求解多项式方程。也就是说,给定一个多项式,例如 $X^2-4X+1$,求它的根($2\pm\sqrt{3}$)。
如果学生的任务是求给定多项式的根,那么教师的任务就是找出一个具有给定根的多项式。Galsone 女士是一位热情的数学教师,已经厌倦了求解那些解的形式简单到只有 $a+b\sqrt{c}$ 的二次方程。她想设计更高次的方程,让它们的解稍微复杂一些。和数学课上的通常要求一样,她希望所有系数都是整数,并且在包含指定根的前提下,使多项式的次数尽可能小。请编写一个程序,帮助她完成教师一方的任务。
给定如下形式的数 $t$:
$$t=\sqrt[m]{a}+\sqrt[n]{b}$$
其中 $a$ 和 $b$ 是不同的质数,$m$ 和 $n$ 是大于 1 的整数。
本题要求你求出 $t$ 在整数上的最小多项式,即满足下列条件的多项式 $F(X)=a_dX^d+a_{d-1}X^{d-1}+\cdots+a_1X+a_0$。
系数 $a_0,\ldots,a_d$ 都是整数,且 $a_d>0$。
$F(t)=0$.
在满足前两个条件的多项式中,次数 $d$ 最小。
$F(X)$ 是本原多项式,即系数 $a_0,\ldots,a_d$ 没有大于 1 的公约数。
例如,$\sqrt{3}+\sqrt{2}$ 在整数上的最小多项式是 $F(X)=X^4-10X^2+1$。验证 $F(t)=0$ 只需进行以下简单计算($\alpha=\sqrt{3}$,$\beta=\sqrt{2}$)。
$$ \begin{aligned} F(t)&=(\alpha+\beta)^4-10(\alpha+\beta)^2+1\\ &=(\alpha^4+4\alpha^3\beta+6\alpha^2\beta^2+4\alpha\beta^3+\beta^4)-10(\alpha^2+2\alpha\beta+\beta^2)+1\\ &=9+12\alpha\beta+36+8\alpha\beta+4-10(3+2\alpha\beta+2)+1\\ &=(9+36+4-50+1)+(12+8-20)\alpha\beta\\ &=0 \end{aligned} $$
验证 $F(t)$ 的次数确实最小则稍微困难一些。幸运的是,在本题给定的条件下,即 $a$ 和 $b$ 为不同的质数且 $m$ 和 $n$ 都大于 1,最小多项式的次数总是 $mn$。此外,它总是首一多项式,即最高次项的系数($a_d$)为 1。
输入格式
输入包含多组数据,每组的格式如下。
$$a\quad m\quad b\quad n$$
这一行表示 $\sqrt[m]{a}+\sqrt[n]{b}$。最后一组数据之后是一行四个零。同一行中的数以一个空格分隔。
每组数据满足以下条件。
$\sqrt[m]{a}+\sqrt[n]{b}\le 4$.
$mn\le 20$.
答案的系数 $a_0,\ldots,a_d$ 都在 $(-2^{31}+1)$ 到 $(2^{31}-1)$ 之间,包含端点。
输出格式
对于每组数据,按下面的格式输出其在整数上的最小多项式 $F(X)=a_dX^d+a_{d-1}X^{d-1}+\cdots+a_1X+a_0$ 的系数。
$$a_d\quad a_{d-1}\quad\cdots\quad a_1\quad a_0$$
非负整数必须不带符号(+ 或 -)输出。同一行中的数必须以一个空格分隔,输出中不能出现其他字符或多余空格。
样例
输入格式 1
3 2 2 2 3 2 2 3 2 2 3 4 31 4 2 3 3 2 2 7 0 0 0 0
输出格式 1
1 0 -10 0 1 1 0 -9 -4 27 -36 -23 1 0 -8 0 18 0 -104 0 1 1 0 0 -8 -93 0 24 -2976 2883 -32 -3720 -23064 -29775 1 0 -21 0 189 0 -945 -4 2835 -252 -5103 -1260 5103 -756 -2183