可参考资料: 资料1 资料2 实现如下: LL CRT(){ LL num=1,ans=0; for(int i=1;i<=n;++i) num*=a[i]; for(int i=1;i<=n;++i){ LL mum=num/a[i],x,y; exgcd(mum,a[i],x,y); ans=(ans+1ll*r[i]*mum*x%num)%num; } return (ans%num+num)%num; }