中国剩余定理

2019-04-14 11:54发布

中国剩余定理(CRT)的表述如下   设正整数两两互素,则同余方程组                                   有整数解。并且在模下的解是唯一的,解为                                     其中,而的逆元。
int CRT(int a[],int m[],int n) { int M = 1; int ans = 0; for(int i=1; i<=n; i++) M *= m[i]; for(int i=1; i<=n; i++) { int x, y; int Mi = M / m[i]; extend_Euclid(Mi, m[i], x, y); ans = (ans + Mi * x * a[i]) % M; } if(ans < 0) ans += M; return ans; }