Exemplo n.º 1
0
def find_largest(up_to_number):
    '''
    Finds longest consecutive primes that add up to a prime.
    '''

    primes = erat(up_to_number)
    max_length = len(primes)
    current_sum = sum(primes)

    def check_length(length, current_sum):
        '''
            Helper function.
        '''
        start = 0
        end = length
        working_val = current_sum
        while end < up_to_number:
            if working_val >= up_to_number:
                break
            elif isprime(working_val):
                return working_val
            working_val += primes[end] - primes[start]
            start+=1
            end+=1
        return False

    for length in range(max_length-1,0,-1):
        current_sum -= primes[length]
        result = check_length(length, current_sum)
        if result:
            return result
Exemplo n.º 2
0
 def test_erat(self):
     for i in range(2, 544):
         self.assertEqual(sieves.erat(i), self.primes_below(i))
Exemplo n.º 3
0
 def test_erat_empty(self):
     # Check that erat() returns an empty list for values below 2.
     for i in (1, 0, -1, -17):
         self.assertEqual(sieves.erat(i), [])
Exemplo n.º 4
0
 def test_erat_returns_list(self):
     self.assertTrue(isinstance(sieves.erat(10), list))
Exemplo n.º 5
0
 def test_erat_empty(self):
     # Check that erat() returns an empty list for values below 2.
     for i in (1, 0, -1, -17):
         self.assertEqual(sieves.erat(i), [])
Exemplo n.º 6
0
 def test_erat(self):
     for i in range(2, 544):
         self.assertEqual(sieves.erat(i), self.primes_below(i))
Exemplo n.º 7
0
 def test_erat_returns_list(self):
     self.assertTrue(isinstance(sieves.erat(10), list))
Exemplo n.º 8
0
def find_ways(num):
	primes = erat(num)
	return primes