1
0
Fork 0
mirror of https://gitlab.com/mfocko/CodeWars.git synced 2024-11-22 08:33:48 +01:00
CodeWars/5kyu/primes_in_numbers/solution.rb

33 lines
492 B
Ruby
Raw Permalink Normal View History

def get_power_and_remainder(n, p)
q = 0
while n % p == 0 do
n /= p
q += 1
end
[n, q]
end
def format_prime_factor(p, q)
case q
when 0
""
when 1
"(" + p.to_s + ")"
else
"(" + p.to_s + "**" + q.to_s + ")"
end
end
def prime_factors(n)
result = (2..Math.sqrt(n) + 1).reduce("") { |factors, p|
n, q = get_power_and_remainder(n, p)
factors + format_prime_factor(p, q)
}
if n > 1 then
result += format_prime_factor(n, 1)
end
result
end