//algorytm.edu.pl
#include<iostream>
using namespace std;
int NWD(int a, int b)
{
int pom;
while(b!=0)
{
pom = b;
b = a%b;
a = pom;
}
return a;
}
int NWW(int a, int b)
{
return a/NWD(a,b)*b;
}
int main()
{
int l1, l2, m1, m2; //liczniki i mianowniki
char kreska;
cout<<"Podaj pierwszy ułamek w formacie licznik/mianownik: ";
cin>>l1>>kreska>>m1;
cout<<"Podaj drugi ułamek w formacie licznik/mianownik: ";
cin>>l2>>kreska>>m2;
int licznik, mianownik; //licznik i mianownik ułamka wynikowego
mianownik = NWW(m1, m2);
int pom = licznik = mianownik/m1*l1 + mianownik/m2*l2;
licznik /= NWD(pom,mianownik);
mianownik /= NWD(pom,mianownik);
cout<<l1<<"/"<<m1<<" + "<<l2<<"/"<<m2<<" = "<<licznik<<"/"<<mianownik;
return 0;
}
Ly9hbGdvcnl0bS5lZHUucGwKI2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKaW50IE5XRChpbnQgYSwgaW50IGIpCnsKICAgIGludCBwb207CiAgICB3aGlsZShiIT0wKQogICAgewogICAgIHBvbSA9IGI7CiAgICAgYiA9IGElYjsKICAgICBhID0gcG9tOyAgCiAgICB9CiAgICByZXR1cm4gYTsKfQogCmludCBOV1coaW50IGEsIGludCBiKQp7CiAgICByZXR1cm4gYS9OV0QoYSxiKSpiOwp9CiAKaW50IG1haW4oKQp7CiAgICBpbnQgbDEsIGwyLCBtMSwgbTI7IC8vbGljem5pa2kgaSBtaWFub3duaWtpCiAgICBjaGFyIGtyZXNrYTsKIAogICAgY291dDw8IlBvZGFqIHBpZXJ3c3p5IHXFgmFtZWsgdyBmb3JtYWNpZSBsaWN6bmlrL21pYW5vd25pazogIjsKICAgIGNpbj4+bDE+PmtyZXNrYT4+bTE7CiAKICAgIGNvdXQ8PCJQb2RhaiBkcnVnaSB1xYJhbWVrIHcgZm9ybWFjaWUgbGljem5pay9taWFub3duaWs6ICI7CiAgICBjaW4+PmwyPj5rcmVza2E+Pm0yOyAgICAKIAogICAgaW50IGxpY3puaWssIG1pYW5vd25pazsgLy9saWN6bmlrIGkgbWlhbm93bmlrIHXFgmFta2Egd3luaWtvd2VnbwogCiAgICBtaWFub3duaWsgPSBOV1cobTEsIG0yKTsKICAgIGludCBwb20gPSBsaWN6bmlrID0gbWlhbm93bmlrL20xKmwxICsgbWlhbm93bmlrL20yKmwyOwogCiAgICBsaWN6bmlrIC89IE5XRChwb20sbWlhbm93bmlrKTsKICAgIG1pYW5vd25payAvPSBOV0QocG9tLG1pYW5vd25payk7CiAKICAgIGNvdXQ8PGwxPDwiLyI8PG0xPDwiICsgIjw8bDI8PCIvIjw8bTI8PCIgPSAiPDxsaWN6bmlrPDwiLyI8PG1pYW5vd25pazsKIAogICAgcmV0dXJuIDA7ICAgIAp9