import tools primes = [] def sumofproperdivisors(input): (f, c) = tools.primefactorization(primes, input, 1000000) sumofdivisors = 1 for i in range(len(f)): sumofdivisors *= (f[i]*f[i]**c[i]-1)/(f[i]-1) return sumofdivisors-input tools.genprimes(primes, 1000000) print sumofproperdivisors(589786) print tools.primefactorization(primes, 589786, 1000000) longestchain = 0 minmember = 0 ignore = set() print 'start' for i in range(4, 1000000): if not i%200: print "i:", i, len(ignore), longestchain, minmember if tools.isprime(i): continue if i in ignore: continue
nonabundants = set() abundants = set() def isabundant(i): if i in abundants: return True if i in nonabundants: return False if i < sumofproperdivisors(i): abundants.add(i) return True nonabundants.add(i) return False tools.genprimes(primes, 28124) output = sum(range(1, 24)) for i in range(25, 28124): found = False for j in range(12, i/2+1): k = i-j if isabundant(k) and isabundant(j): found = True break if not found: print i output += i
import tools primes=[] tools.genprimes(primes, 40000000) for p in primes: print p
import tools from math import sqrt value = 600851475143 newvalue = value result = 1 primes = [] tools.genprimes(primes, 5000) while True: divided = False for i in primes: if not newvalue%i: newvalue /= i if i > result: result = i divided = True if not divided: break print value, newvalue tools.genprimes(primes, newvalue) l = len(primes) for i in range(1, len(primes)+1): if not newvalue % primes[l-i]:
import tools primes = [] tools.genprimes(primes, 1999999) if primes[len(primes)-1] >= 2000000: primes = primes[0:len(primes)-1] result = sum(primes) print result