Guest User

Untitled

a guest
Jun 19th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.66 KB | None | 0 0
  1. mem = {}
  2.  
  3. def count(n):
  4. if n in mem:
  5. return mem[n]
  6. if n <= 1:
  7. return 0
  8. mem[n] = int(min(n, count(n//2) + 1 + (n % 2), count(n//3) + 1 + (n % 3)))
  9. return mem[n]
  10.  
  11. for i in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
  12. 27, 30, 81, 82, 101, 772, 768, 32, 64, 256, 1024, 2**16, 2**32,
  13. 2**63, 2**64-1, 123, 1234, 12345, 123456, 1234567890, 12345678901234567890,
  14. 100, 1000, 10000, 100000, 999983, 999995, 999999, 1000000, 1000003,
  15. 1E9, 1E12, 1E15-1, 1E15, 1E15+1,
  16. 214013, 134775813, 6364136223846793005, 1442695040888963407):
  17. print("N = {}; Answer = {}".format(i,count(i)))
Add Comment
Please, Sign In to add comment