RosettaCodeData/Task/Modular-inverse/Bracmat/modular-inverse.bracmat

17 lines
349 B
Plaintext

( ( mod-inv
= a b b0 x0 x1 q
. !arg:(?a.?b)
& ( !b:1
| (!b.0.1):(?b0.?x0.?x1)
& whl
' ( !a:>1
& div$(!a.!b):?q
& (!b.mod$(!a.!b)):(?a.?b)
& (!x1+-1*!q*!x0.!x0):(?x0.?x1)
)
& (!x:>0|!x1+!b0)
)
)
& out$(mod-inv$(42.2017))
};