CRT 的另一个用途是用一组比较小的质数表示一个大的整数。
例如,若 a 满足如下线性方程组,且 a<∏i=1kpi(其中 pi 为质数):
⎩⎨⎧aaa≡a1(modp1)≡a2(modp2)⋮≡ak(modpk)
我们可以用以下形式的式子(称作 a 的混合基数表示)表示 a:
a=x1+x2p1+x3p1p2+…+xkp1…pk−1
Garner 算法 将用来计算系数 x1,…,xk。
a1≡x1(modp1)
a2≡x1+x2p1(modp2)
(a2−x1)r1,2≡x2(modp2)
a3≡x1+x2p1+x3p1p2(modp3)
((a3−x1)r1,2−x2)r2,3≡x3(modp3)
(…((ak−x1)r1,k−x2)r2,k−⋯−xk−1)rk−1,k≡xk(modpk)
aki=1∏k−1ri,i+1−x1i=1∏k−1ri,i+1−x2i=2∏k−1ri,i+1−⋯−xk−1rk−1,k≡xk(modpk)
a=a1+(a2−x1)r1,2p1+((a3−x1)r1,2−x2)r2,3p1p2+⋯+
a=a1+(a2−a1)r1,2p1+((a3−a1)r1,2−(a2−a1)r1,2)r2,3p1p2+xkp1…pk−1=a1+(a2−a1)r1,2p1+(a3−a2r1,2)r2,3p1p2