Cod sursa(job #598461)
Utilizator | Data | 25 iunie 2011 21:08:39 | |
---|---|---|---|
Problema | Algoritmul lui Euclid extins | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include <stdio.h>
long cmmdc(long a, long b, long &x, long &y){
if(b==0){
x=1;y=0;
return a;
}
long x0,y0,d;
d=cmmdc(b,a%b,x0,y0);
x=x0;
y=x0-(a/b)*y0;
return d;
}
int main(){
FILE *f,*g;
long T,d,x,y,i,a,b,c;
f=fopen("euclid3.in","rt");
g=fopen("euclid3.out","wt");
fscanf(f,"%ld\n",&T);
for (i=0;i<T;i++){
fscanf(f,"%ld %ld %ld\n",&a,&b,&c);
d=cmmdc(a,b,x,y);
if(c%d) fprintf(g,"0 0\n");
else fprintf(g,"%ld %ld\n", x * (c /d), y * (c / d));
}
fclose(f);
fclose(g);
return 0;
}