#include <iostream>
#include <cassert>
#

using namespace std;

void Add(int num1, int den1, int num2, int den2, int & result_num, int & result_den)
{
	int add_num, add_den;
	result_den = lcm(den1, den2);
	result_num = num1*den2 + den1*num2;
	Reduction(result_num, result_den, add_num, add_den);
}

void Sub(int num1, int den1, int num2, int den2, int& result_num, int& result_den){

	int sub_num, sub_den;
	result_den = lcm(den1, den2);
	result_num = num1*den2 - den1*num2;
	Reduction(result_num, result_den, sub_num, sub_den);
}

void Mpy(int num1, int den1, int num2, int den2, int& result_num, int& result_den){
	
	
	int mpy_num, mpy_den;
	result_num = num1*num2;
	result_den = den1*den2;
	Reduction(result_num, result_den, mpy_num, mpy_den);
}

void Div(int num1, int den1, int num2, int den2, int result_num, int result_den){
	
	int div_num, div_den;
	result_num = num1*den2;
	result_den = num2*den1;
	Reduction(result_num, result_den, div_num, div_den);
}

int lcm(int m, int n){


	int m1 = m / gcd(n, m);  // 최소공배수 통분했을때 나오는 최대공약수 제외한 나머지 값
	int n1 = n / gcd(n, m);

	return gcd(n, m) * m1 * n1;  // 최대 공약수 랑 통분했을 시 나오는 수들의 곱셈
}

int gcd(int n, int m){
	
    assert((n > 0) && (m > 0));
	if (n < m)
	{
		int temp = n;
		n = m;
		m = temp;

		return gcd(n%m, n);
	}

	return gcd(n%m, m);
	
}

void Reduction(int num, int den, int& result_num, int& result_den)  //reduction함수의 첫번째 두번째 인자는 사칙연산의 결과의 분자/분모이다.
{
	gcd(num, den);

	result_num = result_num / gcd(num, den);

	result_den = result_den / gcd(num, den);

}

int main()
{
	
	int a, b, c, d;
	assert((b > 0) && (d > 0));
	int resultNum, resultDen;

	cout << "분자/분모를 차례대로 입력하시오 :";
	cin >> a >> b >> c >> d;


	cout << "(" << a << "/" << b << ")+" << "(" << c << "/" << d << ")=";

	Add(a, b, c, d, resultNum, resultDen);

	cout << "(" << a << "/" << b << ")-" << "(" << c << "/" << d << ")=";

	Sub(a, b, c, d, resultNum, resultDen);

	cout << "(" << a << "/" << b << ")*" << "(" << c << "/" << d << ")=";

    Mpy(a, b, c, d, resultNum, resultDen);

	cout << "(" << a << "/" << b << ")/" << "(" << c << "/" << d << ")=";

    Div(a, b, c, d, resultNum, resultDen);


	return 0;
}
