Cod sursa(job #145634)
Utilizator | Data | 29 februarie 2008 09:08:39 | |
---|---|---|---|
Problema | Algoritmul lui Euclid extins | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.59 kb |
#include<stdio.h>
long long a,b,c,D,x,y,T,i;
int euclid(long long a,long long b,long long &x,long long &y)
{ if(b==0)
{
x=1,y=0;return a;
}
long long x0,y0,d;
d=euclid(b,a%b,x0,y0);
x=y0;
y=x0-(a/b)*y0;
return d;
}
int main()
{FILE*f,*g;
f=fopen("euclid3,in","r");
g=fopen("euclid3.out","w");
fscanf(f,"%lld",T);
for(i=1;i<=T;i++)
{
fscanf(f,"%lld %lld %lld",a,b,c);
D=euclid(a,b,x,y);
if(c%D) fprintf(g,"0 0\n");
else
{
x=x*c/D;
y=y*c/D;
fprintf(g,"%lld %lld\n",x,y);
}
}
fcloseall();
return 0;
}