示例#1
0
def prime_pair(x,y):
    '''determine if x,y are a prime_pair, i.e. xy is prime and yx is
    prime'''

    if eu.bsearch(primes, eu.num_cat(x,y)) == -1:
        return False
    if eu.bsearch(primes, eu.num_cat(y,x)) == -1:
        return False
    return True
示例#2
0
def curious(x, primes):
    # First, check right truncation
    val = x
    for i in range(euler_util.length(x) - 1):
        val = rtrunc(val)
        if euler_util.bsearch(primes, val) == -1:
            return False

    # next, check left truncation
    val = x
    for i in range(euler_util.length(x) - 1):
        val = ltrunc(val)
        if euler_util.bsearch(primes, val) == -1:
            return False

    return True
示例#3
0
def run():
    primes = [p for p in euler_util.primes(1000000)]
    # print "primes calculated"

    sums = [0] + euler_util.accumulate(primes,
                                       lambda x,y:x+y,
                                       0)
    # §print "sums calculated"

    max_dist = 0
    max = 0
    for i in range(1, len(sums)):
        if len(sums) - max_dist <= 0:
            break
        for j in range(i + max_dist + 1, len(sums)):
            diff = sums[j] - sums[i-1]
            if diff >= 1000000:
                break
            if euler_util.bsearch(primes, diff) != -1:
                max_dist = (j - i) + 1
                max = diff
示例#4
0
def is_prime(n):
    return euler_util.bsearch(primes, n) != -1
示例#5
0
# count triangle words

import euler_util

tgen = euler_util.triangles()
t = [tgen.next() for i in range(1000)]

f = open('words.txt', 'r')
data = f.read()
f.close()

words = [euler_util.word_value(d[1:-1]) for d in data.split(',')]
words = filter(lambda x: euler_util.bsearch(t, x) != -1, words)
print len(words)