module PrimeFactorization

Constants

VERSION

Public Instance Methods

factors(number) click to toggle source
# File lib/prime_factorization.rb, line 4
def factors(number)
              result=[]
              i=2
              while i < number
                      result << i if number % i == 0
                      i+=1
              end
              return result
end
prime_factorization(number) click to toggle source
# File lib/prime_factorization.rb, line 31
def prime_factorization(number)
              primes = prime_factors(number)

              if primes.size == 0
                      return "#{number} is a prime number"
              else
                      used_primes={}
                      primes.each do |prime|
                              x=1
                              while number > 1
                                      if number % prime == 0
                                              used_primes.[]=(prime,x)
                                              x+=1
                                              number /= prime
                                      else
                                              break
                                      end
                              end
                      end
                      result=""
                      powers = {2=>"\u00b2",3=>"\u00b3",4=>"\u2074",5=>"\u2075",
                      6=>"\u2076",7=>"\u2077",8=>"\u2078",9=>"\u2079"}

                      used_primes.each do |key,value|
                              if value > 0
                                      if value == 1
                                              result << "#{key} * "
                                      elsif value < 9
                                              result << "#{key}#{powers[value]} * "
                                      else
                                              result << "#{key}^#{value} * "
                                      end
                              end
                      end

                      result.chomp!(" * ")

              end
              
              return result

end
prime_factors(number) click to toggle source
# File lib/prime_factorization.rb, line 14
def prime_factors(number)
           all_factors=factors(number)
           result=[]
           all_factors.each do |factor|
                   if result.size == 0
                           result << factor
                   else
                           val=true
                           result.each do |r|
                                   val = false if factor % r == 0
                           end
                           result << factor if val
                   end
           end
           return result
end