11 lines
230 B
Forth
11 lines
230 B
Forth
|
|
: invmod { a m | v b c -- inv }
|
||
|
|
m to v
|
||
|
|
1 to c
|
||
|
|
0 to b
|
||
|
|
begin a
|
||
|
|
while v a / >r
|
||
|
|
c b s>d c s>d r@ 1 m*/ d- d>s to c to b
|
||
|
|
a v s>d a s>d r> 1 m*/ d- d>s to a to v
|
||
|
|
repeat b m mod dup to b 0<
|
||
|
|
if m b + else b then ;
|