原题链接:
题解:
因为题目指定了不能超过int,所以最后要mod m。
通式如下:
代码:
#include <iostream>
using namespace std;
typedef long long LL;
int n;
int exgcd(LL a, LL b, LL& x, LL& y)
{
if (!b) {
x = 1, y = 0;
return a;
}
int d = exgcd(b, a % b, y, x);
y -= a / b * x;
return d;
}
int main()
{
cin >> n;
while (n--)
{
LL a, b, x, y, m;
cin >> a >> b >> m;
LL d = exgcd(a, m, x, y);
if (b % d) cout << "impossible" << endl;
else {
x = x * b / d % m;
cout << x << endl;
}
}
}