Cod sursa(job #1609732)
Utilizator | Data | 22 februarie 2016 23:03:52 | |
---|---|---|---|
Problema | Algoritmul lui Euclid extins | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include <stdio.h>
void euclid(int a,int b,int *x,int *y,int *d){
if(b == 0){
*x = 1;
*y = 0;
*d = a;
}
else{
int x0,y0;
euclid(b,a%b,&x0,&y0,d);
*x = y0;
*y = x0 - (a/b)*y0;
}
}
int main(){
FILE* in = fopen("euclid3.in","r");
FILE* out = fopen("euclid3.out","w");
int T,i = 0,a,b,c,d,x,y;
fscanf(in,"%d",&T);
for(int i=0;i<T;i++){
fscanf(in,"%d %d %d",&a,&b,&c);
euclid(a,b,&x,&y,&d);
if(c%d == 0){
fprintf(out,"%d %d\n",x*(c/d),y*(c/d));
}
else{
fprintf(out,"%d %d\n",0,0);
}
}
return 0;
}