1 |
|
2 |
|
3 | # Function xgcd
|
4 |
|
5 | Calculate the extended greatest common divisor for two values.
|
6 | See https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm.
|
7 |
|
8 |
|
9 | ## Syntax
|
10 |
|
11 | ```js
|
12 | math.xgcd(a, b)
|
13 | ```
|
14 |
|
15 | ### Parameters
|
16 |
|
17 | Parameter | Type | Description
|
18 | --------- | ---- | -----------
|
19 | `a` | number | BigNumber | An integer number
|
20 | `b` | number | BigNumber | An integer number
|
21 |
|
22 | ### Returns
|
23 |
|
24 | Type | Description
|
25 | ---- | -----------
|
26 | Array | Returns an array containing 3 integers `[div, m, n]` where `div = gcd(a, b)` and `a*m + b*n = div`
|
27 |
|
28 |
|
29 | ## Examples
|
30 |
|
31 | ```js
|
32 | math.xgcd(8, 12) // returns [4, -1, 1]
|
33 | math.gcd(8, 12) // returns 4
|
34 | math.xgcd(36163, 21199) // returns [1247, -7, 12]
|
35 | ```
|
36 |
|
37 |
|
38 | ## See also
|
39 |
|
40 | [gcd](gcd.md),
|
41 | [lcm](lcm.md)
|