Watch Code Kata

Download Code Kata

List of Katas

Kata: Prime Factor

My first codersdojo kata time spent: 41 min (to get started with py.test as well)

  • Framework: python.pytest
  • Author: Fandekasp
  • Twitter: Fandekasp

Final Solution

========== __init__.py ==========



========== prime_factor.py ==========

# Adapt the code to your code kata prime_factor.


def primes(nb):
    """
    Compute the prime factors of a given natural number.
    """
    print("nb = %s" % nb)
    results = []
    if nb == 1:
        return results
    for i in range(2, nb+1):
        if nb < i:
            return results
        if nb % i == 0:
            results.append(i)
            new_nb = int(nb / i)
            results.extend(primes(new_nb))
            return results


def test_primes_1():
    assert primes(1) == []

def test_primes_2():
    assert primes(2) == [2]

def test_primes_3():
    assert primes(3) == [3]

def test_primes_4():
    assert primes(4) == [2, 2]

def test_primes_5():
    assert primes(5) == [5]

def test_primes_6():
    assert primes(6) == [2, 3]

def test_primes_7():
    assert primes(7) == [7]

def test_primes_8():
    assert primes(8) == [2, 2, 2]

def test_primes_9():
    assert primes(9) == [3, 3]

Statistics

Framework Started Number of Moves Duration Number of modifications
kata per move kata per move
python.pytest 27-Mar-2012, 06:45:19 AM 63 26m 38s 25 seconds 339 5.4
Chart?chtt=seconds+per+move&cht=bvg&chxt=x,y&chbh=a,0,2&chs=600x200&chxr=1,0,186.0&chds=0,186.0&chco=ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|00ff00|00ff00|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|ff0000|00ff00|00ff00|ff0000|00ff00|00ff00|00ff00|00ff00|00ff00&chd=t:21.0,14.0,13.0,9.0,5.0,13.0,8.0,23.0,19.0,7.0,1.0,23.0,25.0,10.0,28.0,6.0,13.0,97.0,8.0,49.0,65.0,23.0,19.0,12.0,15.0,9.0,38.0,10.0,16.0,45.0,6.0,32.0,37.0,3.0,16.0,19.0,43.0,9.0,2.0,1.0,1.0,4.0,21.0,15.0,25.0,26.0,13.0,37.0,51.0,15.0,157.0,1.0,45.0,30.0,186.0,21.0,9.0,46.0,8.0,29.0,17.0,24.0,5

Longest three moves

Duration in seconds Move
186 55 Goto move
157 51 Goto move
97 18 Goto move

Sharing

Link to Kata: http://codersdojo.org/statistics/4d08d81a08215666334e85d3faa7fcb97487f4cf

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

@