class Integer

Integer class method overloading.

Integer class method overloading.

Integer class method overloading.

Integer class method overloading.

Integer class method overloading.

Integer class method overloading.

Public Instance Methods

biggest_prime_factor() click to toggle source

Returns the biggest prime factor en.wikipedia.org/wiki/Prime_factor

By the fundamental theorem of arithmetic, every integer n > 1 has a unique factorization of prime numbers.

n = P1 * P2 * P3 * … * P(M-1) w/ P(i) > 1 and prime. If we divide n by its smallest prime factor, the last one will be the biggest.

# File lib/rubysh_mathematica/Overloads/Integer/Prime/get_biggest_prime_factor.rb, line 13
def biggest_prime_factor
  number = self
  while (factor = number.smallest_prime_factor) < number
    number /= factor
  end
  number
end
composite?() click to toggle source

Returns true if self is a composite number.

# File lib/rubysh_mathematica/Overloads/Integer/Prime/is_composite.rb, line 4
def composite?
  !prime?
end
factor_of?(number) click to toggle source

Returns true if self is a factor of number.

# File lib/rubysh_mathematica/Overloads/Integer/Multiples/is_factor_of.rb, line 4
def factor_of?(number)
  zero? ? number.zero? : (number % self).zero?
end
multiple_of?(number) click to toggle source

Returns true if self is a multiple of number.

# File lib/rubysh_mathematica/Overloads/Integer/Multiples/is_multiple_of.rb, line 4
def multiple_of?(number)
  number.zero? ? zero? : (self % number).zero?
end
prime?() click to toggle source

Returns true if self is a prime number.

# File lib/rubysh_mathematica/Overloads/Integer/Prime/is_prime.rb, line 4
def prime?
  return false if [0, 1].include? self
  (2..Math.sqrt(self)).none? { |number| (self % number).zero? }
end
smallest_prime_factor() click to toggle source

Returns the smallest prime factor en.wikipedia.org/wiki/Prime_factor

The least prime factor is the least factor, as if the least factor was a composite number, the least prime factor would divide the original number.

# File lib/rubysh_mathematica/Overloads/Integer/Prime/get_smallest_prime_factor.rb, line 10
def smallest_prime_factor
  raise 'Number is less than 2' unless self >= 2
  (2..Math.sqrt(self)).map do |number|
    return number if number.factor_of?(self)
  end
  self
end