Cod sursa(job #3041651)

Utilizator sipdavSipos David Oliver sipdav Data 31 martie 2023 22:20:28
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>

std::ifstream in("euclid3.in");
std::ofstream out("euclid3.out");

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

int main()
{
    int t;
    int a, b, c;
    in>>t;
    for(int i = 0;i < t;i++)
    {
        in>>a>>b>>c;
        int x, y, d;
        d = euclid(a, b, &x, &y);
        if(!(c % d))
        {
            x = (c / d) * x;
            y = (c / d) * y;
            out<<x<<' '<<y<<'\n';
        }
        else
            out<<0<<' '<<0<<'\n';
    }
    in.close();
    out.close();
    return 0;
}