#include<iostream>
using namespace std;
int exgcd(int a,int b,int &x,int &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()
{
int n;
cin>>n;
while(n--)
{
int a,b,m;
int x,y;
cin>>a>>b>>m;
int d=exgcd(a,m,x,y);
if(b%d) puts("impossible");
else printf("%d\n",(long long)b/d*x%m);
}
return 0;
}
欧几里得算法扩展运用
原创black_hole6 ©著作权
©著作权归作者所有:来自51CTO博客作者black_hole6的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:高斯消元(求多组解)
下一篇:求逆元
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
扩展欧几里得算法
y=0; return; } Extend_Eucl
#include ios 欧几里得算法 -
扩展欧几里得算法 算法摘记
里得算法
欧几里得算法 递归 最大公约数 -
扩展欧几里得算法(推导,逆元)
欧几里得算法欧几里得算法又称为辗转相除法,是为了计算两个数
最大公约数 欧几里得算法 方程组