#include<iostream>
using namespace std;
class fraction
{
int num,den,quo;
public:
void input()
{
cin>>num>>den;
}
void display()
{
cout<<num<<"/"<<den<<"\n";
}
void output();
fraction add(fraction);
void simple();
fraction mul(fraction);
fraction sub(fraction);
fraction div(fraction);
fraction large(fraction &);
bool equal(fraction);
};
bool fraction :: equal(fraction n)
{
if(num==n.num&&den==n.den)
return true;
else
return false;
}
fraction fraction :: large (fraction &m)
{
float temp,temp1;
temp=(float)num/den;
temp1=(float)m.num/m.den;
if(temp1>temp)
return m;
else
return *this;
}
void fraction :: output()
{
for(int i=den;i>=2;i--)
{
if(num%i==0 && den%i==0)
{
num=num/i;
den=den/i;
}
}
if(den==1)
cout<<num;
else if(num==0)
cout<<"0";
else if(quo!=0)
cout<<quo;
if(num!=0&&den!=0&&(num/den)!=1&&!(num>den))
cout<<"("<<num<<"/"<<den<<")";
}
fraction fraction :: add(fraction l)
{
fraction temp;
temp.num=(den*l.num)+(num*l.den);
temp.den=den*l.den;
if(temp.num==temp.den)
{
temp.num=1;
temp.den=1;
}
return(temp);
}
fraction fraction :: sub(fraction l)
{
fraction temp;
temp.num=(den*l.num)-(num*l.den);
temp.den=den*l.den;
return(temp);
}
fraction fraction :: mul(fraction l)
{
fraction temp;
temp.num=num*l.num;
temp.den=den*l.den;
return temp;
}
fraction fraction :: div(fraction l)
{
fraction temp;
temp.den=num*l.den;
temp.num=den*l.num;
return temp;
}
void fraction :: simple()
{
quo=num/den;
if(num%den!=0)
num=num%den;
if(num==0&&den==0)
{
quo=0;
den=0;
num=0;
}
}
int main()
{
fraction f1,f2,f3,f4,f5,f6,f7;
bool a;
cout<<"Enter 1st fraction :\n";
f1.input();
cout<<"Enter 2nd fraction :\n";
f2.input();
cout<<"The no.'s are :\n";
f1.display();
f2.display();
cout<<"The addition is: ";
f3=f2.add(f1);
f3.simple();
f3.output();
cout<<"\nThe sub. is: ";
f5=f2.sub(f1);
f5.simple();
f5.output();
cout<<"\nThe mul. is: ";
f4=f2.mul(f1);
f4.simple();
f4.output();
cout<<"\nThe div. is: ";
f6=f2.div(f1);
f6.simple();
f6.output();
a=f1.equal(f2);
if(a)
{
cout<<"\nThe fractions are same." ;
}
else
{
f7=f2.large(f1);
cout<<"\nThe larger fraction is :";
f7.display();
}
return 0;
}