コード例 #1
0
ファイル: 37_take_2.py プロジェクト: jepatti/euler_solutions
def trunc_right_prime(n):
    if len(str(n)[:-1])==1:
        return useful_functions.prime_test(int(str(n)[:-1]))
    
    trunced = int(str(n)[:-1])
    
    if not useful_functions.prime_test(trunced):
        return False
    
    return trunc_right_prime(trunced)
コード例 #2
0
ファイル: 37_take_2.py プロジェクト: jepatti/euler_solutions
def trunc_right_prime(n):
    if len(str(n)[:-1]) == 1:
        return useful_functions.prime_test(int(str(n)[:-1]))

    trunced = int(str(n)[:-1])

    if not useful_functions.prime_test(trunced):
        return False

    return trunc_right_prime(trunced)
コード例 #3
0
ファイル: 37_take_2.py プロジェクト: jepatti/euler_solutions
def test_value(n):
    digits = str(n)
    for i in range(1, len(digits)):
        v = int(digits[0:i])
        if not useful_functions.prime_test(v):
            return False

        v = int(digits[i:])
        if not useful_functions.prime_test(v):
            return False
    return True
コード例 #4
0
ファイル: 37_take_2.py プロジェクト: jepatti/euler_solutions
def test_value(n):
    digits = str(n)
    for i in range(1,len(digits)):
        v = int(digits[0:i])
        if not useful_functions.prime_test(v):
            return False

        v = int(digits[i:])
        if not useful_functions.prime_test(v):
            return False
    return True
コード例 #5
0
ファイル: 37_take_2.py プロジェクト: jepatti/euler_solutions
    print "legal lefts:", legal_lefts

    if len(legal_lefts) == 0:
        break

    for test in legal_lefts:
        if test_value(test):
            found += 1
            print test
            total += test

    new_legal_lefts = []

    for possible in legal_lefts:
        left_shifted = possible * 10
        if useful_functions.prime_test(left_shifted + 1):
            new_legal_lefts.append(left_shifted + 1)

        if useful_functions.prime_test(left_shifted + 3):
            new_legal_lefts.append(left_shifted + 3)

        if useful_functions.prime_test(left_shifted + 7):
            new_legal_lefts.append(left_shifted + 7)

        if useful_functions.prime_test(left_shifted + 9):
            new_legal_lefts.append(left_shifted + 9)

    legal_lefts = new_legal_lefts

print "total", total
コード例 #6
0
ファイル: 37_take_2.py プロジェクト: jepatti/euler_solutions
    
    if len(legal_lefts) == 0:
        break
    
    for test in legal_lefts:
        if test_value(test):
            found += 1
            print test
            total += test

    
    new_legal_lefts = []
    
    for possible in legal_lefts:
        left_shifted = possible*10
        if useful_functions.prime_test(left_shifted+1):
            new_legal_lefts.append(left_shifted+1)
            
        if useful_functions.prime_test(left_shifted+3):
            new_legal_lefts.append(left_shifted+3)
            
        if useful_functions.prime_test(left_shifted+7):
            new_legal_lefts.append(left_shifted+7)
            
        if useful_functions.prime_test(left_shifted+9):
            new_legal_lefts.append(left_shifted+9)
        
    legal_lefts = new_legal_lefts
        

print "total", total
コード例 #7
0
        return False
    
    return trunc_right_prime(trunced)

print "max value: ", convert_number_to_new_base(100000)

def test_value(n):
    digits = str(n)
    for i in range(1,len(digits)):
        v = int(digits[0:i])
        if not useful_functions.prime_test(v):
            return False

        v = int(digits[i:])
        if not useful_functions.prime_test(v):
            return False
    return True

for i in range(4,1000000):
    n = convert_number_to_new_base(i);
    if str(n)[0]=='1':
        continue
    
    if str(n)[-1]=='1':
        continue
    
    if useful_functions.prime_test(n) and test_value(n):
        print n
    
    
    
コード例 #8
0
'''
Created on Jan 13, 2012

@author: Jeff Patti
'''
import itertools
import useful_functions

#can't have a 9 or 8 digit pandigital prime number, the numers 1--8 (and 1--9) sum up to a multiple of 3
#meaning, all numbers composed of those digits can not be prime.
#fails 3 prime test

orig = '7654321'

for perm in itertools.permutations(orig):
    num = int(''.join(perm))
    if useful_functions.prime_test(num):
        print num