Esempio n. 1
0
        public static Numero dividir(Entero dividendo, Entero divisor)
        {
            Numero maximoComunDivisor = dividendo.maximoComunDivisorCon(divisor);
            Numero numerador          = dividendo.divisionEntera(maximoComunDivisor);
            Numero denominador        = divisor.divisionEntera(maximoComunDivisor);

            dynamic numeradorNoTipado   = Convert.ChangeType(numerador, numerador.GetType());
            dynamic denominadorNoTipado = Convert.ChangeType(denominador, denominador.GetType());

            Assert.IsFalse(numerador is Entero && numerador.Equals(new Entero(1)));
            Assert.IsFalse(numerador is Entero && numerador.Equals(new Entero(0)));

            return(dividirCoprimos(numeradorNoTipado, denominadorNoTipado));
        }
Esempio n. 2
0
        public static Numero dividir(Entero dividendo, Entero divisor)
        {
            if (divisor.esCero())
            {
                throw new Exception(Numero.DESCRIPCION_DE_ERROR_NO_SE_PUEDE_DIVIDIR_POR_CERO);
            }
            if (dividendo.esCero())
            {
                return(dividendo);
            }

            Entero maximoComunDivisor = dividendo.maximoComunDivisorCon(divisor);
            Entero numerador          = dividendo.divisionEntera(maximoComunDivisor);
            Entero denominador        = divisor.divisionEntera(maximoComunDivisor);

            if (denominador.esUno())
            {
                return(numerador);
            }

            return(new Fraccion(numerador, denominador));
        }