Cod sursa(job #143503)

Utilizator GulyanAlexandru Gulyan Data 26 februarie 2008 16:58:42
Problema Algoritmul lui Euclid extins Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include<fstream>  
#include<stdio.h> 

using namespace std; 
  
long cmmdc(long a,long b)
{
	long c;
	while(b)
	{
		c=a%b;
		a=b;
		b=c;
	}
	return a;
}

void euclid(long a, long b, long *d, long *x, long *y)  
{  
    if (b == 0) {  
        *d = a;  
        *x = 1;  
        *y = 0;  
    } else {  
        long x0, y0;  
        euclid(b, a % b, d, &x0, &y0);  
        *x = y0;  
        *y = x0 - (a / b) * y0;  
    }  
}  

int main()   
{   
ifstream f1("euclid3.in"); 
ofstream f2("euclid3.out");    

int T,i;
long a,b,c,d;
long x,y;

f1>>T;
for(i=0;i<T;i++)
{

	f1>>a>>b>>c;
	d = cmmdc(a,b);
	if(c%d)
	{
		f2<<0<<' '<<0<<'\n';
	}
	else
	{
		euclid(a,b,&d,&x,&y);
		f2<<x*c/d<<' '<<y*c/d<<'\n';
	}
}


f1.close();
f2.close();

return 0;}