コード例 #1
0
ファイル: p46.py プロジェクト: mmueller/project-euler
def p46_test(c):
    "Test if a prime and square that fit Goldbach's rule can be found."
    for p in prime_generator():
        diff = c - p
        if diff < 0:
            return False
        if is_square(diff / 2):
            return True
コード例 #2
0
ファイル: p46.py プロジェクト: mmueller/project-euler
def p46_test(c):
    "Test if a prime and square that fit Goldbach's rule can be found."
    for p in prime_generator():
        diff = c - p
        if diff < 0:
            return False
        if is_square(diff / 2):
            return True
コード例 #3
0
    def _find_smallest_prime(cls, n):
        assert isinstance(n, int)

        pg = prime_generator(n)

        for prime in pg:
            if n % prime == 0:
                return prime

        raise Exception, 'no prime found for {}'.format(n)
コード例 #4
0
def max_prime_sequence():
    max_seq = (1,0)
    for c in primes.prime_generator():
        if c>1000:
            break
        for b in range(-c +1,1000): # when n = 1 then we have n -b +c so the result has to be at least 2
            res = prime_sequence(b,c)
            if res[2] > max_seq[0]:
                max_seq = (res[2], res[0] * res[1])
    return max_seq[1]
コード例 #5
0
ファイル: prime_factorizer.py プロジェクト: shalgrim/euler
    def _find_smallest_prime(cls, n):
        assert isinstance(n, int)

        pg = prime_generator(n)

        for prime in pg:
            if n % prime == 0:
                return prime

        raise Exception, 'no prime found for {}'.format(n)
コード例 #6
0
ファイル: p37.py プロジェクト: mmueller/project-euler
def find_truncatable_primes(count):
    "Find the first count truncatable primes, assuming that many exist."
    result = []
    for n in prime_generator():
        if n < 10:
            continue
        if isTruncatablePrime(n, 1) and isTruncatablePrime(n, -1):
            result.append(n)
            if len(result) == count:
                break
    return result
コード例 #7
0
ファイル: p37.py プロジェクト: mmueller/project-euler
def find_truncatable_primes(count):
    "Find the first count truncatable primes, assuming that many exist."
    result = []
    for n in prime_generator():
        if n < 10:
            continue
        if isTruncatablePrime(n, 1) and isTruncatablePrime(n, -1):
            result.append(n)
            if len(result) == count:
                break
    return result
コード例 #8
0
ファイル: euler041.py プロジェクト: alexturek/euler
def find_max_pandigital_prime(digrange):
	for i in range(digrange,0,-1):
		for p in itertools.permutations([x for x in reversed([n for n in range(1,i+1)])]):
			p = int(''.join([str(x) for x in p]))
			stop = int(math.sqrt(p))
			no_factors = True
			for prime in primes.prime_generator():
				if p % prime == 0:
					no_factors = False
					break
				if prime > stop:
					break
			if no_factors:
				return p
	return None
コード例 #9
0
ファイル: p60.py プロジェクト: mmueller/project-euler
def generate_remarkable_set(size):
    sets = []
    for p in prime_generator():
        print p
        for j in range(0, len(sets)):
            good = True
            for q in sets[j]:
                if not remarkable_pair(p, q):
                    good = False
                    break
            if good:
                newset = sets[j] + [p]
                sets.append(newset)
                if len(newset) == size:
                    return newset
        sets.append([p])
コード例 #10
0
ファイル: p60.py プロジェクト: mmueller/project-euler
def generate_remarkable_set(size):
    sets = []
    for p in prime_generator():
        print p
        for j in range(0, len(sets)):
            good = True
            for q in sets[j]:
                if not remarkable_pair(p, q):
                    good = False
                    break
            if good:
                newset = sets[j] + [p]
                sets.append(newset)
                if len(newset) == size:
                    return newset
        sets.append([p])
コード例 #11
0
ファイル: p07s.py プロジェクト: mmueller/project-euler
from primes import prime_generator

# Old sieve implementation.  About 20 times slower for the same result.
#def sieve(n):
#    """Return a list of primes less than n."""
#    if n < 2:
#        return []
#
#    # Space is a list of tuples (bool, int) where the bool is true
#    # if the int might still be prime, false if we know it's not.
#    space = []
#    for i in range(0,n):
#        space.append((True, i))
#    primes = []
#
#    for i in range(2,n):
#        if space[i][0] == True:
#            primes.append(space[i][1])
#            for j in range(i*i,n,i):
#                if space[j][0] == True and space[j][1] % space[i][1] == 0:
#                    space[j] = (False, space[j][1])
#
#    return primes

if __name__ == '__main__':
    for i, p in enumerate(prime_generator()):
        if i == 10000:
            print p
            break