Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. #Project Euler Problem 5
  2.  
  3. def isPrime(n):
  4. for i in range(2,int(n**0.5)+1):
  5. if n%i==0:
  6. return False
  7. return True
  8.  
  9. def factor(n):
  10. factors = []
  11. #Get the first factors
  12. if isPrime(n) == False:
  13. for i in range(2,n):
  14. if n%i == 0:
  15. factors.append(i)
  16. factors.append(int(n/i))
  17. break
  18. else: return [1,n]
  19.  
  20. #Continue until fully factored(all nums are prime)
  21. while False in [isPrime(i) for i in factors]:
  22. newFactors = []
  23. for f in factors:
  24. if isPrime(f) == False:
  25. for j in range(2,f):
  26. if f%j == 0:
  27. newFactors.append(j)
  28. newFactors.append(int(f/j))
  29. break
  30. else: newFactors.append(f)
  31. factors = newFactors
  32. return factors
  33.  
  34. numFactors = [factor(i) for i in range(1,21)]
  35.  
  36. h = {}
  37. for i in numFactors:
  38. for j in set(i):
  39. if j in h:
  40. if i.count(j) > h[str(j)]:
  41. h[str(j)] = i.count(j)
  42. else:
  43. h[str(j)] = i.count(j)
  44.  
  45. a = 1
  46. for i in h: a*=int(i)**h[i]
  47. print(a)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement