예제 #1
0
파일: prob243.py 프로젝트: bsterrett/euler
 def get_prime_factors(number):
     prime_factors = []
     primes = get_primes_prec()
     for prime in primes:
         if prime > number:
             return prime_factors
         if number%prime == 0: prime_factors.append(prime)
     print "shouldnt reach this!", prime_factors, denom, len(primes)
예제 #2
0
파일: prob50.py 프로젝트: bsterrett/euler
def main():
    upper_bound = 1000000
    primes = get_primes_prec(upper_bound)
    best_prime = -1
    best_count = -1
    for i in range(len(primes)-1,-1,-1):
        prime = primes[i]
        if prime < upper_bound:
            count = find_prime_sum(prime,primes,best_count)
            if count > best_count:
                best_count = count
                best_prime = prime
    print "Prime: ", best_prime
예제 #3
0
파일: prob243.py 프로젝트: bsterrett/euler
def main():
    last_resilience = best_resilience = Fraction(1,1)
    best_denominator = -1
    denom = 2
    prime_counter = 1
    primes = get_primes_prec()
    while(best_resilience >= Fraction(15499,94744)):
        new_resilience = get_resilience(denom)
        if new_resilience < best_resilience:
            #print "Denom:", denom, "  Resilience:", float(new_resilience)
            best_resilience = new_resilience
            best_denominator = denom
        denom *= primes[prime_counter]
        prime_counter += 1
    print "Best denominator:", best_denominator
    return best_denominator
예제 #4
0
파일: prob47.py 프로젝트: bsterrett/euler
def main():
    target = 4
    prime_upper_bound = 150000
    try:
        number = 3
        primes = get_primes_prec(prime_upper_bound)
        while(True):
            factors = count_unique_factors(primes,number,target)
            if factors >= target:
                found = True
                for i in range(1,target):
                    if count_unique_factors(primes,number+i,target) < target:
                        found = False
                        number += i
                        break
                if found: raise Found
            number += 1
    except Found:
        print number
예제 #5
0
파일: prob41.py 프로젝트: bsterrett/euler
#python
from pelib import get_primes_prec, number_as_list

def check_pandigital(list):
    #returns True if list is 1-9 pandigital
    for i in range(1,len(list)+1):
        if list.count(i) != 1: return False
    return True

if __name__ == '__main__':
    primes = get_primes_prec(10000000)
    primes.reverse()
    for i in primes:
        if check_pandigital(number_as_list(i)):
            print i
            exit(0)