Cod sursa(job #633881)

Utilizator vitaleamaldur vitalik vitalea Data 14 noiembrie 2011 23:43:32
Problema Algoritmul lui Euclid extins Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.62 kb
#include<stdio.h>
#include<stdlib.h>

int euclidX(int a, int b, int *x, int *y){
	if(b==0){
		*x=1;
		*y=0;
		return a;
	}
	else{
		int x0, y0, d;
		d=euclidX(b,a%b,&x0,&y0);
		*x=y0;
		*y=x0-(a/b)*y0;
		return d;
	}
}

int main(){
	FILE *in,*out;
	int n,i;
	in=fopen("euclid3.in","r");
	out=fopen("euclid3.out","w");
	fscanf(in,"%d",&n);
	for(i=0; i<n; i++){
		int a,b,d,x,y,c;
		fscanf(in,"%d%d%d",&a,&b,&c);
		d=euclidX(a,b,&x,&y);
		if(c%d!=0) fprintf(out,"%d %d\n",0,0);
	 	else fprintf(out,"%d %d\n",x*(c/d),y*(c/d));
	}
	fclose(out);
	fclose(in);
	getchar();
	return 0;
	system("pause");
}