private List<int> Multiplica(List<int> list, List<int> libre)
        {
            IgualaArreglos(list, libre);
            List<int> respuesta = new List<int>();
            int Count = list.Count - 1;

            int inicio = 0;
            int auxiliar = 0;
            Operador op = new Operador();
            foreach (int numero in list)
            {
                op.PrimerNumero = list[Count - inicio];
                foreach (int valor in libre)
                {
                    op.SegundoNumero = libre[Count - auxiliar];
                    op.RealizaOperacion(Operacion.Multiplicacion);

                    respuesta.Insert(0, op.Resultado);
                    auxiliar++;
                }
                auxiliar = 0;
                inicio++;
            }

            if (op.Acarreo != 0)
            {
                respuesta.Insert(0, op.Acarreo);
            }

            return respuesta;
        }
 private List<int> Resta(List<int> list, List<int> libre)
 {
     Operador op = new Operador();
     return RalizaOperacion(list, libre, Operacion.Resta, op);
 }
 private List<int> Suma(List<int> list, List<int> libre)
 {
     Operador op = new Operador();
     List<int> respuesta = RalizaOperacion(list, libre, Operacion.Suma, op);
     if (op.Acarreo != 0)
     {
         respuesta.Insert(0, op.Acarreo);
     }
     return respuesta;
 }
        private List<int> RalizaOperacion(List<int> list, List<int> libre, Operacion operacion, Operador op)
        {
            IgualaArreglos(list, libre);
            List<int> respuesta = new List<int>();
            int Count = libre.Count - 1;

            for (int inicio = 0; inicio < list.Count; inicio++)
            {

                op.PrimerNumero = list[Count - inicio];
                op.SegundoNumero = libre[Count - inicio];
                op.RealizaOperacion(operacion);

                respuesta.Insert(0, op.Resultado);
            }

            return respuesta;
        }