Class: Integer

Inherits:
Object
  • Object
show all
Defined in:
lib/rubysh_mathematica/Overloads/Integer/Prime/is_prime.rb,
lib/rubysh_mathematica/Overloads/Integer/Prime/is_composite.rb,
lib/rubysh_mathematica/Overloads/Integer/Multiples/is_factor_of.rb,
lib/rubysh_mathematica/Overloads/Integer/Multiples/is_multiple_of.rb,
lib/rubysh_mathematica/Overloads/Integer/Prime/get_smallest_prime_factor.rb

Overview

Integer class method overloading.

Instance Method Summary collapse

Instance Method Details

#composite?Boolean

Returns true if self is a composite number.

Returns:

  • (Boolean)


4
5
6
# File 'lib/rubysh_mathematica/Overloads/Integer/Prime/is_composite.rb', line 4

def composite?
  !prime?
end

#factor_of?(number) ⇒ Boolean

Returns true if self is a factor of number.

Returns:

  • (Boolean)


4
5
6
# 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) ⇒ Boolean

Returns true if self is a multiple of number.

Returns:

  • (Boolean)


4
5
6
# 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?Boolean

Returns true if self is a prime number.

Returns:

  • (Boolean)


4
5
6
7
# 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_factorObject

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.



10
11
12
13
14
15
16
# 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