Class: Integer
- Inherits:
-
Object
- Object
- Integer
- Defined in:
- lib/rational.rb
Instance Method Summary collapse
-
#denominator ⇒ Object
In an integer, the denominator is 1.
-
#gcd(other) ⇒ Object
Returns the greatest common denominator of the two numbers (
self
andn
). -
#gcdlcm(other) ⇒ Object
Returns the GCD and the LCM (see #gcd and #lcm) of the two arguments (
self
andother
). -
#lcm(other) ⇒ Object
Returns the lowest common multiple (LCM) of the two arguments (
self
andother
). -
#numerator ⇒ Object
In an integer, the value is the numerator of its rational equivalent.
-
#to_r ⇒ Object
Returns a Rational representation of this integer.
Instance Method Details
#denominator ⇒ Object
In an integer, the denominator is 1. Therefore, this method returns 1.
417 418 419 |
# File 'lib/rational.rb', line 417 def denominator 1 end |
#gcd(other) ⇒ Object
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.
438 439 440 441 442 443 444 445 446 447 |
# File 'lib/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 |
#gcdlcm(other) ⇒ Object
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]
473 474 475 476 477 478 479 480 |
# File 'lib/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 |
#lcm(other) ⇒ Object
Returns the lowest common multiple (LCM) of the two arguments (self
and other
).
Examples:
6.lcm 7 # -> 42
6.lcm 9 # -> 18
457 458 459 460 461 462 463 |
# File 'lib/rational.rb', line 457 def lcm(other) if self.zero? or other.zero? 0 else (self.div(self.gcd(other)) * other).abs end end |
#numerator ⇒ Object
In an integer, the value is the numerator of its rational equivalent. Therefore, this method returns self
.
410 411 412 |
# File 'lib/rational.rb', line 410 def numerator self end |
#to_r ⇒ Object
Returns a Rational representation of this integer.
424 425 426 |
# File 'lib/rational.rb', line 424 def to_r Rational(self, 1) end |