Advertisement
danchaofan

Euler #203

Dec 25th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.74 KB | None | 0 0
  1. from math import factorial
  2.  
  3.  
  4. def doubles(n):
  5.     return len(set(n)) == len(n)
  6.  
  7.  
  8. def factorize(n):
  9.     factors = [1]
  10.     while n % 2 == 0:
  11.         factors.append(2)
  12.         n = int(n/2)
  13.     for b in range(3, int(n**0.5) + 1, 2):
  14.         while n % b == 0:
  15.             n = int(n/b)
  16.             factors.append(b)
  17.     if n > 2:
  18.         factors.append(int(n))
  19.     return doubles(factors)
  20.  
  21.  
  22. def combination(n, k):
  23.     return int(factorial(n)/(factorial(n-k)*factorial(k)))
  24.  
  25. nums = []
  26. for x in range(51):
  27.     for y in range(int(x/2) + 1):
  28.         if combination(x, y) not in nums:
  29.             nums.append(combination(x, y))
  30.  
  31. answer = 0
  32. for i in nums:
  33.     print(nums.index(i))
  34.     if factorize(i):
  35.         answer += i
  36. print(answer)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement