Guest User

Untitled

a guest
Jun 6th, 2010
365
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. import operator
  2. # A slightly efficient superset of primes.
  3. def PrimesPlus():
  4. yield 2
  5. yield 3
  6. i = 5
  7. while True:
  8. yield i
  9. if i % 6 == 1:
  10. i += 2
  11. i += 2
  12. # Returns a dict d with n = product p ^ d[p]
  13. def GetPrimeDecomp(n):
  14. d = {}
  15. primes = PrimesPlus()
  16. for p in primes:
  17. while n % p == 0:
  18. n /= p
  19. d[p] = d.setdefault(p, 0) + 1
  20. if n == 1:
  21. return d
  22. def NumberOfDivisors(n):
  23. d = GetPrimeDecomp(n)
  24. powers_plus = map(lambda x: x+1, d.values())
  25. return reduce(operator.mul, powers_plus, 1)
  26. def GetTheSum(n):
  27. k = 0
  28. for d in range(1,n):
  29. if NumberOfDivisors(d) == 4:
  30. k += d
  31. return k
Advertisement
Add Comment
Please, Sign In to add comment