public object divide(object x, object y)
{
long n = Util.ConvertToLong(x);
long val = Util.ConvertToLong(y);
long gcd1 = gcd(n, val);
if (gcd1 == 0)
return num(0);
n = n / gcd1;
long d = val / gcd1;
if (d == 1)
return num(n);
if (d < 0)
{
n = -n;
d = -d;
}
return new Ratio(BigInteger.Create(n), BigInteger.Create(d));
}