数论-扩展欧几里德算法模板

求解二元一次不定方程 mx + ny = gcd(m, n)

计算出 d = m mod n 和一组根 (x, y) .

 

1 void ex_gcd(int m, int n, int &x, int &y, int &d)
2 {
3     if (n) { ex_gcd(n, m%n, y, x, d); y -= m/n*x; return; }
4     d = m; x = 1; y = 0;
5     return;
6 }

 

posted @ 2017-08-26 23:32  derchg  阅读(181)  评论(0编辑  收藏  举报