ユークリッドの互除法

Share:
1func gcd(m, n int) int {
2	for n != 0 {
3		m, n = n, m%n
4	}
5	return m
6}
7

拡張ユークリッドの互除法

 1func extgcd(m, n int) (int, int, int) {
 2	x, y := 1, 0
 3	u, v := 0, 1
 4	for n != 0 {
 5		k := m / n
 6		m, n = n, m-k*n
 7		x, u = u, x-k*u
 8		y, v = v, y-k*v
 9	}
10	return m, x, y
11}
12