Pagini recente » Cod sursa (job #1274167) | Cod sursa (job #106416) | Cod sursa (job #2233473) | Cod sursa (job #2390834) | Cod sursa (job #2675393)
#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;
}