Exemplo n.º 1
0
def main():
    """ 
    600851475143 = 71* 839* 1471* 6857
    """
    if len(sys.argv) < 2:
        usage()
        sys.exit(0)

    start = time.time()

    n = int(sys.argv[1])
    primes = euler_base.get_primes_to_sqrt_n(n)

    prime_factors = []
    euler_base.get_prime_factors(primes, prime_factors, n)
    print "%d has prime factors: %s" % (n, prime_factors)
Exemplo n.º 2
0
    divisors.sort()
    return sum(divisors)

def main():
    """ Answer = 4613732 """
    if len(sys.argv) < 2:
        usage()
        sys.exit(0)

    start = time.time()
    n = int(sys.argv[1])
    amic_pairs = set()
    primes = euler_base.get_primes_to_sqrt_n(n)
    for i in range(1, n+1):
        sum_i = get_sum_of_divisors(primes, i) # e.g., 220 => 284
        if sum_i == i:
            continue
        pap = get_sum_of_divisors(primes, sum_i) # possible amicable pair to i
        if i == pap:
            print "%d and %d are amicable pairs" % (i, sum_i)
Exemplo n.º 3
0
    return total
            
def main():
    """ Answer = 4179871, for n = 28123 """
    if len(sys.argv) < 2:
        usage()
        sys.exit(0)

    start = time.time()
    n = int(sys.argv[1])
    abundant_numbs = []
    primes = euler_base.get_primes_to_sqrt_n(n)

    for i in range(1, n+1):
        sum_i = get_sum_of_divisors(primes, i) # e.g., 220 => 284
        if sum_i > i:
            abundant_numbs.append(i)

    print find_non_sums_of_abundant_numbs(abundant_numbs, n)