2.记a=8,b=3,p=11,q=19和n=pq=209,使用egcd算法求得
p
−
1
p^{-1}
p−1=7,
q
−
1
q^{-1}
q−1=7,令y≡
a
q
q
−
1
+
b
p
p
−
1
(
m
o
d
n
)
aqq^{-1}+bpp^{-1}(mod n)
aqq−1+bpp−1(modn), y=41,验证可知,y是正确解。
3.令M=
5
∗
7
∗
9
∗
11
5*7*9*11
5∗7∗9∗11=3465,
b
1
b_1
b1=693,
b
2
b_2
b2=495,
b
3
b_3
b3=385,
b
4
b_4
b4=315,
b
1
−
1
b_1^{-1}
b1−1=2,
b
2
−
1
b_2^{-1}
b2−1 =3,
b
3
−
1
b_3^{-1}
b3−1=4,
b
4
−
1
b_4^{-1}
b4−1=8,x=1386+2970+4620+10080(mod 3465)=1731
4.令x=mt+a,因为x≡a (mod n),故有mt (mod n)=0,因为m和n互素,故t为n的整数倍,记t=bn,代入一开始的x=mt+a=m(bn)+a,所以x(mod mn)=a。
int CRT(int a,int b,int p,int q){
int p1,q1;
for(int i=0;;i++){
if((i*p)%q==1){p1=i;
break;}
}
for(int j=0;;j++){
if((j*q)%p==1){q1=j;
break;}
}
int y=a*q*q1+b*p*p1;
return y%(p*q);
}