Skip to content

Instantly share code, notes, and snippets.

@geronimod
Last active December 28, 2015 22:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save geronimod/7569911 to your computer and use it in GitHub Desktop.
Save geronimod/7569911 to your computer and use it in GitHub Desktop.
Kata Prime Factors
require 'minitest/autorun'
def primes(input)
out, curr_div = [], 2
begin
div, mod = input.divmod(curr_div)
if mod.zero?
out << curr_div
input = div
else
curr_div += 1
end
raise if input >= curr_div
rescue => e
retry
end
out
end
describe 'PrimeFactors' do
describe "Compute the prime factors" do
it "must to return the primes of a given natural number" do
primes(1).must_equal []
primes(2).must_equal [2]
primes(3).must_equal [3]
primes(4).must_equal [2,2]
primes(5).must_equal [5]
primes(6).must_equal [2,3]
primes(7).must_equal [7]
primes(8).must_equal [2,2,2]
primes(9).must_equal [3,3]
primes(12).must_equal [2,2,3]
primes(126).must_equal [2,3,3,7]
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment