Cerinţa
Se dau 4 numere naturale a b c d, reprezentând fracţiile a/b şi c/d. Calculaţi suma şi produsul celor două fracţii, aduse la forma ireductibilă.
Date de intrare
Programul citește de la tastatură numerele a b c d.
Date de ieşire
Programul afișează pe ecran numerele m n, reprezentând numărătorul şi numitorul sumei celor două fracţii, redusă la forma ireductibilă, iar pe a doua linie numerele p q, reprezentând numărătorul şi numitorul produsului celor două fracţii, redus la forma ireductibilă.
Restricţii şi precizări
1 ≤ a, b, c, d ≤ 10000
Exemplu
Intrare
1 2 4 3
Ieșire
11 6
2 3
Răspunsuri la întrebare
#include <iostream>
using namespace std;
int cmmdc(int a, int b)
{
int x;
if (a==0 && b==0) x=-1;
else
{
int t; if (a>b) { t=a; a=b; b=t; }
if (a==0) x=b;
else
{
int r;
while(b!=0)
{
r=a%b;
a=b;
b=r;
}
x=a;
}
}
return x;
}
int main()
{
int a, b, c, d, numaratorSuma, numitorSuma, numaratorProdus, numitorProdus;
int cmmdcSuma;
cout << "dati numaratorul si numitorul prinei fractii: " << "\n";
cin >> a >> b ;
cout << "dati numaratorul si numitorul fractiei a doua: " << "\n";
cin >> c >> d;
numaratorSuma=a*d+b*c;
numitorSuma=b*d;
cmmdcSuma=cmmdc(numaratorSuma,numitorSuma);
numaratorSuma = numaratorSuma / cmmdcSuma;
numitorSuma = numitorSuma / cmmdcSuma;
cout << numaratorSuma << " " << numitorSuma << "\n";
numaratorProdus = a*c;
numitorProdus = numitorSuma;
int cmmdcProdus = cmmdc(numaratorProdus, numitorProdus);
numaratorProdus = numaratorProdus / cmmdcProdus;
numitorProdus = numitorProdus / cmmdcProdus;
cout << numaratorProdus << " " << numitorProdus;
return 0;
}