Class: Integer

Inherits:
Object
  • Object
show all
Defined in:
lib/rational.rb

Instance Method Summary collapse

Instance Method Details

#denominatorObject

In an integer, the denominator is 1. Therefore, this method returns 1.



449
450
451
# File 'lib/rational.rb', line 449

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.



470
471
472
473
474
475
476
477
478
479
# File 'lib/rational.rb', line 470

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]


505
506
507
508
509
510
511
512
# File 'lib/rational.rb', line 505

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


489
490
491
492
493
494
495
# File 'lib/rational.rb', line 489

def lcm(other)
  if self.zero? or other.zero?
    0
  else
    (self.div(self.gcd(other)) * other).abs
  end
end

#numeratorObject

In an integer, the value is the numerator of its rational equivalent. Therefore, this method returns self.



442
443
444
# File 'lib/rational.rb', line 442

def numerator
  self
end

#to_rObject

Returns a Rational representation of this integer.



456
457
458
# File 'lib/rational.rb', line 456

def to_r
  Rational(self, 1)
end