10 lines
230 B
Forth
10 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 ;
|