def exgcd(a, b):
if b == 0:
return a, 1, 0
g, x2, y2 = exgcd(b, a % b)
x1, y1 = y2, x2 - (a // b) * y2
return g, x1, y1
# ax+by=m
def f(a, b, m):
g, x1, y1 = exgcd(a, b)
if m % g != 0:
return None, None, None
x0, y0 = x1 * m // g, y1 * m // g
return g, x0, y0
def Inv(a, n):
g, x, y = f(a, n, 1)
if x is None:
return None
else:
return (x % n + n) % n
n,m=map(int,input().split())
print(Inv(n,m))
扩展欧几里得算法、求逆元
最新推荐文章于 2026-06-19 17:00:49 发布

1万+

被折叠的 条评论
为什么被折叠?



