예제 #1
0
파일: e037.py 프로젝트: vvolkl/projecteuler
def solve(n=100, verbose=False):
    result = 0
    pfound = 0
    results = []
    i = 8
    while pfound < 11:
        if is_prime(i):  # and ['4','6','8','0'] not in str(i):
            if verbose:
                print 'checking prime ', i
            s = str(i)
            relevance = 1
            for j in xrange(len(s)):
                num = s[j:]
                if verbose:
                    print '\t truncating from left, now checking ', num
                if not is_prime(int(num)):
                    relevance = 0
                    break
                num = s[:j + 1]
                if verbose:
                    print '\t truncating from right, now checking ', num
                if not is_prime(int(num)):
                    relevance = 0
                    break
                #j = j + 1
            if relevance:
                if verbose:
                    print 'found it: ', i
                results.append(i)
                pfound = pfound + 1
        i = i + 1
    result = sum(results)
    return result
예제 #2
0
파일: e041.py 프로젝트: vvolkl/projecteuler
def greatest_pandigital():
    #Note: Nine numbers cannot be done
    #(1+2+3+4+5+6+7+8+9=45 => always dividable by 3)
    #Note: Eight numbers cannot be done
    #(1+2+3+4+5+6+7+8=36 => always dividable by 3)
    for n in range(1, 8)[::-1]:
        s = ''.join([str(a) for a in range(1, n + 1)[::-1]])
        if verbose:
            print 'checking %i pandigital numbers: ' % n, s
        for e in permutations(s):
            e = ''.join(e)
            if verbose:
                print e
            if is_prime(int(e)):
                return e
예제 #3
0
def check_sums_for_prime():
    result = 0
    l = 0
    for (prim, i) in zip(__primes[:20], range(20)):
        s = 0

        j = i
        while s + __primes[j] < n:
            s += __primes[j]
            if is_prime(s):
                if j - i > l:
                    l = j - i
                    result = s
                if args.verbose:
                    print prim, result, s, l, j - i
            j = j + 1
    return result
예제 #4
0
def solve(n=1000000, verbose=False):
    results = []
    for num in sieve(n):
        if num not in results:
            if verbose:
                print "checking prime %i for circularity ..." % num
            relevant = True
            for rotated_prime in all_rotations(str(num)):
                if not is_prime(int(rotated_prime)):
                    relevant = False
            if relevant:
                if verbose:
                    print " ... it is circular!"
                    print rotations
                results += [int(e) for e in all_rotations(str(num))]
    result = len(np.unique(results))
    return result
예제 #5
0
def solve(n=4, verbose=True):
    result = 0
    i = 0
    count = n
    while not result:
        i += 1
        if not is_prime(i):
            if len(set(factors2(i))) == n:
                count -= 1
            else:
                count = n
        else:
            count = n
        if not count:
            result = i - n 
        if verbose:
            print i, count
    return result
예제 #6
0
def solve(verbose=True):
    """
    Find the smallest odd composite number that cannot be written
    as the sum of a prime and a two times a square.
    """
    upperLimit = 100000
    result = 1
    for num in xrange(2, upperLimit):
        if not is_prime(num) and num % 2:
            result = 0
            for e in sieve(num):
                for f in xrange(int(np.ceil(np.sqrt((num - e) / 2)) + 1)):
                    if verbose:
                        print num, e, f, result
                    result += num == e + 2 * f**2
        if not result:
            result = num
            break
    return result
예제 #7
0
파일: Euler7.py 프로젝트: treyhunner/Euler
if True:
    target = 10001
    
    from Primes import is_prime
    i, answer = 0, 1
    while(i < target):
        answer += 1
        if is_prime(answer):
            i += 1
    print(answer)
    raw_input("Press ENTER")
예제 #8
0
파일: Euler3.py 프로젝트: treyhunner/Euler
if True:
    target = 600851475143

    from Primes import is_prime, low_prime
    while True:
        if is_prime(target):
            answer = target
            break
        target //= low_prime(target)
    print(answer)
    raw_input('Press ENTER')