中国剩余定理

设正整数两两互素,则同余方程组

存在整数解,并且在模下的解是唯一的,解为

 

 

其中,而的逆元。

 

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];
        exgcd(Mi,m[i],x,y);
        ans=(ans+Mi*x*a[i])%M;
    }
    if(ans<0) ans+=M;
    return ans;
}

 

posted @ 2016-08-02 18:58  邻家那小孩儿  阅读(130)  评论(0编辑  收藏  举报