Example #1
0
class Problem47:
    def __init__(self):
        self.primeChecker = PrimeChecker()
        self.primeChecker.init_prime_factoring()

    def find_consecutive_prime(self, n):
        i = 1
        while True:
            for j in range(0, n):
                if not len(self.primeChecker.get_unique_prime_factors(i, True)) == n:
                    break
                i += 1
                if j == n - 1:
                    return i - n
            i += 1

    def answer(self):
        return self.find_consecutive_prime(4)
class UtilsTest(unittest.TestCase):

    def setUp(self):
        self.primeChecker = PrimeChecker()
        self.primeChecker.init_prime_factoring()
        pass

    def tearDown(self):
        pass

    def test_47ShouldBeAPrime(self):
        self.assertTrue(PrimeChecker.is_prime(47))

    def test_27ShouldNotBeAPrime(self):
        self.assertFalse(PrimeChecker.is_prime(27))

    def test_primesBelow20ShouldBe235711131719(self):
        self.assertEqual([2, 3, 5, 7, 11, 13, 17, 19], PrimeChecker.primes_below(20))

    def test_primeFactorsFor644ShouldBe22723(self):
        self.assertEqual([2, 2, 7, 23], self.primeChecker.get_prime_factors(644, True))

    def test_uniquePrimeFactorsFor644ShouldBe2723(self):
        self.assertEqual([2, 7, 23], self.primeChecker.get_unique_prime_factors(644, True))