Skip to content

Instantly share code, notes, and snippets.

@feiyuw
Created September 25, 2015 07:15
Show Gist options
  • Save feiyuw/e36b113b719ac0cd3dfd to your computer and use it in GitHub Desktop.
Save feiyuw/e36b113b719ac0cd3dfd to your computer and use it in GitHub Desktop.
def generate_prime_factors(n):
primes = []
factor = 2
while factor <= n:
while n % factor == 0:
primes.append(factor)
n /= factor
factor += 1
return primes
# unit tests
import unittest
class TestPrimeFactors(unittest.TestCase):
def test_one(self):
self._assertPrimeFactors(1, [])
def test_two(self):
self._assertPrimeFactors(2, [2])
def test_three(self):
self._assertPrimeFactors(3, [3])
def test_four(self):
self._assertPrimeFactors(4, [2, 2])
def test_six(self):
self._assertPrimeFactors(6, [2, 3])
def test_eight(self):
self._assertPrimeFactors(8, [2, 2, 2])
def test_nine(self):
self._assertPrimeFactors(9, [3, 3])
def _assertPrimeFactors(self, num, factors):
self.assertEqual(generate_prime_factors(num), factors)
if __name__ == '__main__':
unittest.main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment