Watch Code Kata

Download Code Kata

List of Katas

Kata: Prime factor

  • Framework: python.pyunit
  • Author: Chris
  • Twitter: da_chrisch

Final Solution

========== prime.py ==========

# Adapt the code to your code kata prime.

import unittest

class Prime:
    @staticmethod
    def factorize(number):
        primes = []
        for candidate in range(2, number + 1):
            while number % candidate == 0:
                primes.append(candidate)
                number /= candidate
        return tuple(primes)

class TestPrime(unittest.TestCase):

    def test_one(self):
        self.assertEqual((), Prime.factorize(1))
    def test_two(self):
        self.assertEqual((2, ), Prime.factorize(2))
    def test_three(self):
        self.assertEqual((3, ), Prime.factorize(3))
    def test_four(self):
        self.assertEqual((2, 2), Prime.factorize(4))
    def test_six(self):
        self.assertEqual((2, 3), Prime.factorize(6))
    def test_eight(self):
        self.assertEqual((2, 2, 2), Prime.factorize(8))
    def test_nine(self):
        self.assertEqual((3, 3), Prime.factorize(9))

if __name__ == '__main__':
    unittest.main()

Statistics

Framework Started Number of Moves Duration Number of modifications
kata per move kata per move
python.pyunit 05-Mar-2012, 02:04:13 PM 37 6m 27s 10 seconds 54 1.5
Chart?chtt=seconds+per+move&cht=bvg&chxt=x,y&chbh=a,0,2&chs=600x200&chxr=1,0,36.0&chds=0,36.0&chco=ff0000|00ff00|ff0000|00ff00|00ff00|00ff00|00ff00|00ff00|ff0000|00ff00|ff0000|00ff00|00ff00|00ff00|00ff00|00ff00|00ff00|ff0000|00ff00|ff0000|ff0000|ff0000|00ff00|00ff00|00ff00|00ff00|00ff00|ff0000|00ff00|00ff00|00ff00|00ff00|00ff00|ff0000|00ff00|00ff00|00ff00&chd=t:13.0,6.0,15.0,11.0,4.0,7.0,2.0,2.0,16.0,5.0,16.0,14.0,14.0,3.0,8.0,4.0,26.0,19.0,6.0,19.0,16.0,9.0,11.0,21.0,3.0,2.0,3.0,9.0,12.0,13.0,11.0,4.0,3.0,36.0,19.0,4.0,1

Longest three moves

Duration in seconds Move
36 34 Goto move
26 17 Goto move
21 24 Goto move

Sharing

Link to Kata: http://codersdojo.org/statistics/69f37ae929efd62bf861562c7c2b7188ad6cc78c

Short link to Kata: http://bit.ly/wMEqxl

@