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)
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)
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)