#include<stdio.h> 
#include<conio.h> 
#include<string.h> 
#include<math.h> 
int USCLN(int a, int b) 
{ 
  a = abs(a); 
  b = abs(b); 
  while (a != 0 && b != 0) 
    if (a > b) 
      a -= b; 
    else 
      b -= a; 
  if (a == 0) 
    return b; 
  else 
    return a; 
} 

int BSCNN(int a, int b) 
{ 
   return a * b / USCLN(a, b); 
} 

typedef struct tagphanso  
{ 
  int tuso, mauso; 
} PHANSO; 

PHANSO uocluoc(PHANSO a) 
{ 
  PHANSO c; 
  c.tuso = a.tuso / USCLN(a.tuso, a.mauso); 
  c.mauso = a.mauso / USCLN(a.tuso, a.mauso); 
  return c; 
} 

PHANSO cong(PHANSO a, PHANSO b) 
{ 
  PHANSO c; 
  c.tuso = a.tuso * b.mauso + a.mauso * b.tuso; 
  c.mauso = a.mauso * b.mauso; 
  c = uocluoc(c); 
  return c; 
} 

PHANSO tru(PHANSO a, PHANSO b) 
{ 
  PHANSO c; 
  c.tuso = a.tuso * b.mauso - a.mauso * b.tuso; 
  c.mauso = a.mauso * b.mauso; 
  c = uocluoc(c); 
  return c; 
} 

PHANSO nhan(PHANSO a, PHANSO b) 
{ 
  PHANSO c; 
  c.tuso = a.tuso * b.tuso; 
  c.mauso = a.mauso * b.mauso; 
  c = uocluoc(c); 
  return c; 
} 

PHANSO chia(PHANSO a, PHANSO b) 
{ 
  PHANSO c; 
  c.tuso = a.tuso * b.mauso; 
  c.mauso = a.mauso * b.tuso; 
  c = uocluoc(c); 
  return c; 
} 
void print(PHANSO a) 
{ 
  printf("%d/%d", a.tuso, a.mauso); 
} 
int main() 
{ 
  PHANSO a, b, c; 

  printf("\nNhap phan so a : "); 
  scanf("%d%d", &a.tuso, &a.mauso); 
  printf("\nNhap phan so b : "); 
  scanf("%d%d", &b.tuso, &b.mauso); 
  printf("\nToi gian a ta duoc : "); 
  a = uocluoc(a); 
  print(a); 
  printf("\nToi gian b ta duoc : "); 
  b = uocluoc(b); 
  print(b); 
  printf("\nTong cua hai phan so = "); 
  c = cong(a, b); 
  print(c); 
  printf("\nHieu cua hai phan so = "); 
  c = tru(a, b); 
  print(c); 
  printf("\nTich cua hai phan so = "); 
  c = nhan(a, b); 
  print(c); 
  printf("\nThuong cua hai phan so = "); 
  c = chia(a, b); 
  print(c); 
  getch(); 
}