In an integer, the denominator is 1. Therefore, this method returns 1.
# File rational.rb, line 417
def denominator
1
end
Returns the greatest common denominator of the two numbers
(self and n).
Examples:
72.gcd 168 # -> 24 19.gcd 36 # -> 1
The result is positive, no matter the sign of the arguments.
# File rational.rb, line 438
def gcd(other)
min = self.abs
max = other.abs
while min > 0
tmp = min
min = max % min
max = tmp
end
max
end
Returns the GCD and the LCM (see gcd and lcm) of the two arguments
(self and other). This is more efficient than
calculating them separately.
Example:
6.gcdlcm 9 # -> [3, 18]
# File rational.rb, line 473
def gcdlcm(other)
gcd = self.gcd(other)
if self.zero? or other.zero?
[gcd, 0]
else
[gcd, (self.div(gcd) * other).abs]
end
end
Returns the lowest common multiple (LCM) of the two arguments
(self and other).
Examples:
6.lcm 7 # -> 42 6.lcm 9 # -> 18
# File rational.rb, line 457
def lcm(other)
if self.zero? or other.zero?
0
else
(self.div(self.gcd(other)) * other).abs
end
end
In an integer, the value is the numerator of its rational
equivalent. Therefore, this method returns self.
# File rational.rb, line 410
def numerator
self
end
Returns a Rational representation of this integer.
# File rational.rb, line 424
def to_r
Rational(self, 1)
end