#include <iostream>
#define LL long long
using namespace std;
LL gcd(LL a,LL b)
{
return b?gcd(b,a%b):a;
}
void extend_Euclid(LL a, LL b, LL &x, LL &y)
{
if(b == 0)
{
x = 1;
y = 0;
return;
}
extend_Euclid(b, a%b, x, y);
LL tmp = x;
x = y;
y = tmp - (a / b) * y;
}
int main()
{
LL a,b,c;
while(cin>>a>>b>>c)
{
LL g=gcd(a,b);
LL d=c%gcd(a,b);
if(d!=0)
{
cout<<"cuo wu"<<endl;
continue;
}
LL x,y;
c/=gcd(a,b);
extend_Euclid(a,b,x,y);
cout<<x*c<<" "<<y*c<<endl;
}
return 0;
}
小菜第一篇。ax+by=c求解
最新推荐文章于 2024-09-05 17:26:56 发布
本文通过一个C++程序实例介绍了扩展欧几里得算法的应用,该算法用于求解两个整数的最大公约数及相应的贝祖等式系数。程序首先定义了一个计算最大公约数的函数gcd,接着实现了扩展欧几里得算法来找到使ax + by = gcd(a, b)成立的整数x和y。
3521

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



