Extended euclidian algorithm
a,b∈Z,0<b<a
gcd(a,b)=1⟹∃x,y:ax+by=1
Steps:
a | b | q | r | EA ↓ | x | y | EEA ↑ |
---|
a0=a | b0=b | ⌊b0a0⌋ | r0=a0modb0 | Start | x0=y1 | y0=x1−q0⋅y1 | Stop |
a1=b0 | b1=r0 | ⌊b1a1⌋ | r1=a1modb1 | | x1=y2 | y1=x2−q1⋅y2 | |
⋮ | ⋮ | ⋮ | ⋮ | | ⋮ | ⋮ | |
at=bt−1 | bt=rt−1 | ⌊btat⌋ | rt=atmodbt | rt=gcd(a,b) | xt=yt+1 | yt=xt+1−qt⋅yt+1 | Check: 1=atxt+btyt |
at+1=bt | bt+1=rt | ⌊bt+1at+1⌋ | rt+1=0 | rt+1=0 ⟹Stop | xt+1=0 | yt+1=1 | Start |
a | b | q | r | EA ↓ | x | y | EEA ↑; Check |
---|
23 | 17 | 1 | 6 | | 3 | −4 | 23(3)+17(−4)=69−68=1 |
17 | 6 | 2 | 5 | | −1 | 3 | 17(−1)+6(3)=−17+18=1 |
6 | 5 | 1 | 1 | | 1 | −1 | 6(1)+5(−1)=6−5=1 |
5 | 1 | 5 | 0 | | 0 | 1 | 5(0)+1(1)=0+1=1 |