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))