Pagini recente » Cod sursa (job #2257242) | Cod sursa (job #2182988) | Cod sursa (job #812489) | Cod sursa (job #450939) | Cod sursa (job #715442)
Cod sursa(job #715442)
#include<cstdio>
void double_assign(int *plv1,int *plv2, int rv1,int rv2)
{
*plv1 = rv1;
*plv2 = rv2;
}
int main()
{
freopen("euclid3.in", "r", stdin);
freopen("euclid3.out", "w", stdout);
int nN;
scanf("%d", &nN);
for (int i=1; i<=nN; i++)
{
int a,b,c;
scanf("%d %d %d", &a, &b, &c);
int prevx=1,prevy=0 ,x=0,y=1;
while (b!=0)
{
int cat = a/b;
double_assign(&x,&prevx, prevx-x*cat,x);
double_assign(&y,&prevy, prevy-y*cat,y);
double_assign(&a,&b, b,a%b);
}//a*prevx+b*prevy == gcd (now a==gcd)
if (c%a==0)
printf("%d %d\n", prevx * c/a, prevy * c/a);
else
printf("0 0\n");
}
return 0;
}