Advertisement
Guest User

Untitled

a guest
Oct 18th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. def nthVampireNumber(n):
  2. guess = 0
  3. found = 0
  4. while found <= n:
  5. guess += 1
  6. if isVampireNumber(guess):
  7. found += 1
  8. return guess
  9.  
  10. def isVampireNumber(n):
  11. for factor1 in range(1, sqrt(n)+1):
  12. if n%factor1 == 0:
  13. factor2 = n//factor1
  14. if not (factor1 % 10 == 0 and factor2 % 10 == 0):
  15. if goodLengths(factor1, factor2, n):
  16. if canRearrange(factor1, factor2, n):
  17. return True
  18. return False
  19.  
  20. def goodLengths(f1, f2, n):
  21. return digitCount(f1) == digitCount(f2) == (1/2)*digitCount(n)
  22.  
  23. def digitCount(n):
  24. count = 0
  25. while n > 0:
  26. count += 1
  27. n//10
  28. return count
  29.  
  30. def canRearrange(f1, f2, n):
  31. overallString = str(f1) + str(f2)
  32. n = str(n)
  33.  
  34. for digit in overallString:
  35. if overallString.count(digit) != n.count(digit):
  36. return False
  37. return True
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement