コード例 #1
0
ファイル: 50.py プロジェクト: MirzaI/ProjectEuler
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
コード例 #2
0
ファイル: tests.py プロジェクト: uzumaxy/pyprimes
 def test_erat(self):
     for i in range(2, 544):
         self.assertEqual(sieves.erat(i), self.primes_below(i))
コード例 #3
0
ファイル: tests.py プロジェクト: uzumaxy/pyprimes
 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), [])
コード例 #4
0
ファイル: tests.py プロジェクト: uzumaxy/pyprimes
 def test_erat_returns_list(self):
     self.assertTrue(isinstance(sieves.erat(10), list))
コード例 #5
0
ファイル: tests.py プロジェクト: cesarfm/pyprimes
 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), [])
コード例 #6
0
ファイル: tests.py プロジェクト: cesarfm/pyprimes
 def test_erat(self):
     for i in range(2, 544):
         self.assertEqual(sieves.erat(i), self.primes_below(i))
コード例 #7
0
ファイル: tests.py プロジェクト: cesarfm/pyprimes
 def test_erat_returns_list(self):
     self.assertTrue(isinstance(sieves.erat(10), list))
コード例 #8
0
ファイル: 77.py プロジェクト: MirzaI/ProjectEuler
def find_ways(num):
	primes = erat(num)
	return primes