算法导论31.8 Exercises 答案
31.8-1
如果$n$不是一个奇质数的幂,那么可以将$n$写成$n=p_1^{e_1}p_2^{e_2}\dots p_r^{e_r}$,其中$r\ge 2$。
按照定理31.34,对于$\forall i\in[1,r]$,方程$x=1\pmod {p_i^{e_i}}$都有两个平凡根$-1,1$。
对于方程$x^2=1\pmod n$而言,它最多只有两个平凡根$(-1,1)$。但是按照题目31.5-4的结论,这个方程它含有$2^r>2$个不同的根,因此总存在一组关于所有方程$x_i=1\pmod {p_i^{e_i}}$的根组合$(x_1,x_2,\dots,x_n)$,通过中国剩余定理映射出来的$x$,是方程$x^2=1\pmod n$的非平凡根。
$\star$ 31.8-2
根据欧拉函数函数$\phi$的不完全积性,可以得知$\displaystyle{\phi(n)=\prod_{i=1}^r \phi(p_i)^{e_i}}$。也就是说,$\forall i\in [1,r]$,都有$\phi(e_i^{e_i})\mid \phi(n)$。那么整除所有$\phi(p_i^{e_i})$的最小倍数也应该整除$\phi(n)$,即$\text{lcm}(\phi(p_1^{e_1}),\dots,\phi(p_r^{e_r}))\mid \phi(n)$,那么也就是有$\lambda(n)\mid \phi(n)$。
先通过反证法证明$n$是无平方因子的。假设$n$的某个质因子$p$对应的指数$e$满足$e\ge 2$,那么按照$\phi$的定义,有$p\mid \phi(p^e)$,因为$\phi(p^e)=(p-1)p^{e-1}$。那么按照最小公倍数的定义,因为$\lambda(n)=\text{lcm}(\phi(p_1^{e_1}),\dots,\phi(p_r^{e_r}))$,有$p\mid \lambda(n)$,然而当$\lambda(n)\mid n-1$时,$n$才是Carmichael数,但此时$p\nmid n-1$,因此$\lambda(n)\mid n-1$不可能成立。从而证明了$n$是Carmichael数需要满足$n$是无平方因子的。
接下来使用反证法证明$n$至少有$3$个质因子,如果$n$只有两个质因子$p,q$(即$n=pq$)。那么有$\phi(q)=q-1$,并且由于$n-1=pq-1=p-1\pmod{(q-1)}$,由于$p>1$,因此$q-1\nmid n-1$,这说明$\text{lcm}(p-1,q-1)\nmid n-1$,因此这时$n$不可能是Carmichael数。这说明Carmichael数至少有$3$个质因子。
31.8-3
如果$x^2=1\pmod n$,那么变形后,可以得到$(x+1)(x-1)=0\pmod n$。也就是说,$n\mid(x+1)(x-1)$。
考虑使用反证法来证明:
- 如果$\gcd(x-1,n)=1$或者是$\gcd(x+1,n)=n$,那么有$n\mid(x+1)$,由于$x\in\mathbb{Z}_p^{\ast}$,因此有$x=n-1$,它是平凡的。
- 如果$\gcd(x-1,n)=n$或者是$\gcd(x+1,n)=1$,那么有$n\mid(x-1)$,由于$x\in\mathbb{Z}_p^{\ast}$,因此有$x=1$,它是平凡的。
因此,只要满足了其中一个条件,即$\gcd(x-1,n)$或$\gcd(x+1,n)$是$n$的平凡因子,那么意味着$x$是$x^2=1\pmod n$的平凡根。
因此原结论成立。