Cod sursa(job #1298794)
| Utilizator | Data | 23 decembrie 2014 09:47:12 | |
|---|---|---|---|
| Problema | Algoritmul lui Euclid extins | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.9 kb |
#include <fstream>
using namespace std;
ifstream x ("euclid3.in");
ofstream y ("euclid3.out");
int T;
int main()
{
int i;
x>>T;
int a,b,c;
for(i=1;i<=T;i++)
{
x>>a>>b>>c;
int X=0,Y=1,q;
int LastX=1,LastY=0;
int aux,auxX,auxY;
if(a<b)
{
aux=a;
a=b;
b=aux;
}
while(b!=0)
{
q=a/b;
aux=b;
b=a%b;
a=aux;
auxX=X;
X=LastX-q*X;
LastX=auxX;
auxY=Y;
Y=LastY-q*Y;
LastY=auxY;
}
if(c%a==0)
{
q=c/a;
y<<LastX*q<<' '<<LastY*q;
y<<'\n';
}
else
{
y<<0<<' '<<0;
y<<'\n';
}
}
return 0;
}
