Cod sursa(job #2675393)

Utilizator rARES_4Popa Rares rARES_4 Data 21 noiembrie 2020 16:08:47
Problema Algoritmul lui Euclid extins Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("euclid3.in");
ofstream g ("euclid3.out");
long long euclid_extins(long long a,long long b,long long &x,long long &y)
{
    if(b == 0)
    {
        x = 1;
        y = 0;
        return a;
    }
    long long  fost_x,fost_y;
    long long cmmdc = euclid_extins(b,a%b,fost_x,fost_y);
    x = fost_y;
    y = fost_x + (-a/b)*fost_y;
    return cmmdc;
}
int main()
{
    long long a,b,x,y,c;
    f >> a >> b>> c;
    long long cmmdc;
    cmmdc =  euclid_extins(a,b,x,y);
    /// inmultim ecuatia cu c / d (d este cmmdc) pentru a ajunge la ecuatia alg lui euclid extins (daca c/d nu apartine nr naturale atunci ecuatia din pb nu are solutie)
    float raport  = c/cmmdc * 1.00;
    cout << raport<< " " << y;
    if(raport == c/cmmdc)
        g << x*raport<< " "<< y*raport;
    else
        g << 0 << " "<< 0;
}