13 lines
259 B
Text
13 lines
259 B
Text
func invmod(a, n) {
|
|
var (t, nt, r, nr) = (0, 1, n, a % n)
|
|
while (nr != 0) {
|
|
var quot = int((r - (r % nr)) / nr);
|
|
(nt, t) = (t - quot*nt, nt);
|
|
(nr, r) = (r - quot*nr, nr);
|
|
}
|
|
r > 1 && return()
|
|
t < 0 && (t += n)
|
|
t
|
|
}
|
|
|
|
say invmod(42, 2017)
|