Exemplo n.º 1
0
 public static object BIDivide(BigInteger n, BigInteger d)
 {
     if (d.Equals(BigIntegerZero))
         throw new ArithmeticException("Divide by zero");
     BigInteger gcd = n.gcd(d);
     if (gcd.Equals(BigIntegerZero))
         return 0;
     n = n.divide(gcd);
     d = d.divide(gcd);
     if (d.Equals(BigIntegerOne))
         return reduce(n);
     return new Ratio((d.signum() < 0 ? n.negate() : n),
         (d.signum() < 0 ? d.negate() : d));
 }