Pagini recente » Cod sursa (job #2277964) | Istoria paginii runda/simulare_001 | Cod sursa (job #1363314) | Cod sursa (job #1497804) | Cod sursa (job #3136223)
#include <stdio.h>
void extEuclid(int A,int N,int* x,int* y,int* d) {
if( N==0 ) {
(*d)=A;
(*x)=1;
(*y)=0;
}
else {
int x0,y0;
extEuclid(N,A%N,&x0,&y0,d);
(*y) = x0 - y0*(A/N);
(*x) = y0;
}
}
int main() {
int N;
int inv=0,ins=0;
int a,b,c;
FILE* f = fopen("euclid3.in","r");
FILE* g = fopen("euclid3.out","w");
if( f==NULL || g==NULL )
return 0;
if ( fscanf(f,"%d",&N)!=1 )
return 0;
for(int i=0; i<N; i++) {
if ( fscanf(f,"%d %d %d",&a,&b,&c)!=3 )
return 0;
int d;
extEuclid(a,b,&inv,&ins,&d);
if( c%d!=0 )
fprintf(g,"0 0\n");
else
fprintf(g,"%d %d\n", (c/d)*inv, (c/d)*ins );
}
fclose(f);
fclose(g);
}