public Entero maximoComunDivisorCon(Entero otroEntero) { if (otroEntero.esCero()) { return(this); } else { return(otroEntero.maximoComunDivisorCon(this.restoCon(otroEntero))); } }
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)); }