Cod sursa(job #2259524)

Utilizator andaraluca2001Anda Epure andaraluca2001 Data 13 octombrie 2018 13:52:16
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
using namespace std;
/* cmmdc(a,b)=d
    xa+yb=d;

    1. cmmdc(a,b)=cmmdc(b,a%b);
    2. cmmdc(a,0)=a;



    int f(int x)
    {
        if(x<3) return 1;
        else return f(x-1)+f(x-2);
    }
    */
    int cmmdc(int a, int b,int &x,int &y) //ALGORITMUL LUI EUCLID EXTINS
    {
    if(b==0)
    {   x=1;
        y=0;
        return a;
    }


    int d=cmmdc(b,a%b,x,y);

    int xn=y;
     y=x-y*(a/b);
     x=xn;

     return d;
    }
int main()
{
    ifstream cin("euclid3.in");
    ofstream cout("euclid3.out");

   int n,a,b,c,x,y;
   cin>>n;

    for(int i=1;i<=n;i++)
    {
        cin>>a>>b>>c;
        int d=cmmdc(a,b,x,y);

        if(c%d==0)
        {
            x=x*(c/d);
            y=y*(c/d);

        }

        else x=y=0;

        cout<<x<<" "<<y<<'\n';


    }
    return 0;
}