Class: Integer
- Inherits:
-
Object
- Object
- Integer
- 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
-
#composite? ⇒ Boolean
Returns true if self is a composite number.
-
#factor_of?(number) ⇒ Boolean
Returns true if self is a factor of number.
-
#multiple_of?(number) ⇒ Boolean
Returns true if self is a multiple of number.
-
#prime? ⇒ Boolean
Returns true if self is a prime number.
-
#smallest_prime_factor ⇒ Object
Returns the smallest prime factor en.wikipedia.org/wiki/Prime_factor.
Instance Method Details
#composite? ⇒ Boolean
Returns true if self is a composite number.
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.
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.
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.
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_factor ⇒ Object
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 |