package Capitulo_4.Fracciones;

class Fraccion{
   private int numerador;
   private int denominador;

   Fraccion(int unNum, int unDen){
      int m;
      m = mcd(unNum, unDen);
      numerador = unNum/m;
      denominador = unDen/m;
   }

   @Override
   public String toString(){
      String aux = "";
      if(numerador/denominador >=0)
         aux += Math.abs(numerador) +"/" +Math.abs(denominador);
      else
         aux += "-" + Math.abs(numerador) +"/" +Math.abs(denominador);
      return aux;
   }

   private int mcd(int a, int b) {
      if(b == 0) return a;
      else return mcd(b, a%b);
   }
   
   static Fraccion suma(Fraccion a, Fraccion b) {
      int unNum, unDen;
      unNum = a.numerador*b.denominador + a.denominador*b.numerador;
      unDen = a.denominador*b.denominador;
      return new Fraccion(unNum, unDen);
   }

   static Fraccion resta(Fraccion a, Fraccion b) {
      int unNum, unDen;
      unNum = a.numerador*b.denominador - a.denominador*b.numerador;
      unDen = a.denominador*b.denominador;
      return new Fraccion(unNum, unDen);
   }

   static Fraccion multiplicacion(Fraccion a, Fraccion b) {
      return new Fraccion(a.numerador*b.numerador, a.denominador*b.denominador);
   }

   static Fraccion division(Fraccion a, Fraccion b) {
      return new Fraccion(a.numerador*b.denominador, a.denominador*b.numerador);
   }

   static public void main(String args[]){
      Fraccion a = new Fraccion(63,84);
      Fraccion b = new Fraccion(45,10);
      Fraccion c = Fraccion.suma(a, b);
      Fraccion d = Fraccion.resta(a, b);
      Fraccion e = Fraccion.multiplicacion(a, b);
      Fraccion f = Fraccion.division(a, b);
 
      System.out.println(a);
      System.out.println(b);
      System.out.println(c);
      System.out.println(d);
      System.out.println(e);
      System.out.println(f);
   }
}
