Ejemplo n.º 1
0
def problem47():
    """ Distinct primes factors
    Find the first four consecutive integers to have four distinct prime factors.
    What is the first of these numbers?

    """
    number = 2 * 3 * 5 * 7
    while True:
        first_number = number
        second_number = number + 1
        third_number = number + 2
        fourth_number = number + 3

        if len(mathhelper.prime_divisor_list(fourth_number)) != 4:
            number += 4
            continue
        if len(mathhelper.prime_divisor_list(third_number)) != 4:
            number += 3
            continue
        if len(mathhelper.prime_divisor_list(second_number)) != 4:
            number += 2
            continue
        if len(mathhelper.prime_divisor_list(first_number)) != 4:
            number += 1
            continue

        return first_number
Ejemplo n.º 2
0
 def test_prime_divisor_list(self):
     self.assertEqual(list(mathhelper.prime_divisor_list(-5)), [[5]])
     self.assertEqual(list(mathhelper.prime_divisor_list(-4)), [[2, 2]])
     self.assertEqual(list(mathhelper.prime_divisor_list(-1)), [])
     self.assertEqual(list(mathhelper.prime_divisor_list(0)), [])
     self.assertEqual(list(mathhelper.prime_divisor_list(1)), [])
     self.assertEqual(list(mathhelper.prime_divisor_list(2)), [[2]])
     self.assertEqual(list(mathhelper.prime_divisor_list(3)), [[3]])
     self.assertEqual(list(mathhelper.prime_divisor_list(4)), [[2, 2]])
     self.assertEqual(list(mathhelper.prime_divisor_list(5)), [[5]])
     self.assertEqual(list(mathhelper.prime_divisor_list(6)), [[2], [3]])
     self.assertEqual(list(mathhelper.prime_divisor_list(12)), [[2, 2], [3]])
     self.assertEqual(list(mathhelper.prime_divisor_list(30)), [[2], [3], [5]])
     self.assertEqual(list(mathhelper.prime_divisor_list(-5, False)), [5])
     self.assertEqual(list(mathhelper.prime_divisor_list(-4, False)), [2, 2])
     self.assertEqual(list(mathhelper.prime_divisor_list(-1, False)), [])
     self.assertEqual(list(mathhelper.prime_divisor_list(0, False)), [])
     self.assertEqual(list(mathhelper.prime_divisor_list(1, False)), [])
     self.assertEqual(list(mathhelper.prime_divisor_list(2, False)), [2])
     self.assertEqual(list(mathhelper.prime_divisor_list(3, False)), [3])
     self.assertEqual(list(mathhelper.prime_divisor_list(4, False)), [2, 2])
     self.assertEqual(list(mathhelper.prime_divisor_list(5, False)), [5])
     self.assertEqual(list(mathhelper.prime_divisor_list(6, False)), [2, 3])
     self.assertEqual(list(mathhelper.prime_divisor_list(12, False)), [2, 2, 3])
     self.assertEqual(list(mathhelper.prime_divisor_list(30, False)), [2, 3, 5])