Cod sursa(job #1498870)
Utilizator | Data | 9 octombrie 2015 17:37:43 | |
---|---|---|---|
Problema | Algoritmul lui Euclid extins | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include<stdio.h>
void euclidext(int a, int b,int *d, int *x,int *y)
{ if( b == 0 )
{*d = a;
*x=1;
*y=0;}
else
{int x0,y0;
euclidext(b, a%b, d, &x0, &y0);
*x= y0;
*y= -a/b*y0 + x0;
}
}
int main()
{int a,b,c,d,x,y,n,i, aux;
FILE *f=fopen("euclid3.in","r");
FILE *g=fopen("euclid3.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;++i)
{fscanf(f,"%d%d",&a,&b);
fscanf(f,"%d",&c);
euclidext(a,b,&d,&x,&y);
aux =c/d;
if ( aux *d == c)
fprintf(g,"%d %d\n",x*aux,y*aux);
else
fprintf(g,"%d %d\n",0,0);
}
}