Pagini recente » Cod sursa (job #2572539) | Cod sursa (job #639012) | Cod sursa (job #2402478) | Cod sursa (job #1317608) | Cod sursa (job #3039032)
#include <iostream>
#include <fstream>
using namespace std;
int mc=0,nc=0,mc1=0,nc1=0,qc=0,qc1=0,r=1;
struct nr{
int m,n,cmmdc;
};
nr euclid(int a,int b)
{
int pas=0;
while(a%b)
{
r=a%b;
qc=a/b;
if(pas==0)
{
mc=1;
nc=-qc;
pas++;
}
else if(pas==1)
{
mc1=mc;
nc1=nc;
mc=-qc;
nc=1+qc*qc1;
pas++;
}
else {
int aux=mc1-mc*qc;
int aux1=nc1-nc*qc;
mc1=mc;
nc1=nc;
mc=aux;
nc=aux1;
}
qc1=qc;
a=b;
b=r;
}
if(pas!=0)
{
r=a%b;
a=b;
b=r;
nr rez;
rez.n=nc;
rez.m=mc;
rez.cmmdc=a;
return rez;
}
else{
nr rez;
rez.n=1;
rez.m=0;
rez.cmmdc=b;
return rez;
}
}
int main()
{
ifstream cin("euclid3.in");
ofstream cout("euclid3.out");
int n;
cin>>n;
for(int i=0;i<n;i++)
{
int a,b,c;
cin>>a>>b>>c;
if(b==0)
{
if(c%a==0)
cout<<c/a<<" "<<170<<'\n';
else cout<<0<<' '<<0<<'\n';
}
else{
nr d=euclid(a,b);
if(c%d.cmmdc==0)
{
d.m*=c/d.cmmdc;
d.n*=c/d.cmmdc;
cout<<d.m<<" "<<d.n<<" "<< '\n';
}
else cout<<0<<' '<<0<<'\n';
}
}
return 0;
}