Advertisement
Guest User

Untitled

a guest
Apr 1st, 2015
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.64 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- encoding: utf-8 -*-
  3. # pylint: disable=C0111
  4. from sys import stdin
  5. from bisect import bisect_left as bisect
  6.  
  7. # GleanStart
  8. # 8
  9. # 3 4
  10. # 3 100
  11. # 4 3
  12. # 5 12
  13. # 6 7
  14. # 7 239
  15. # 8 17
  16. # 9 500
  17. # GleanEnd
  18.  
  19. def main():
  20. pow2m1 = [2]
  21. for _ in xrange(666):
  22. pow2m1.append(pow2m1[-1]*2)
  23.  
  24. for x in xrange(len(pow2m1)):
  25. pow2m1[x] -= 1
  26.  
  27. inp = map(int, stdin.read().split())
  28. for _ in xrange(inp[0]):
  29. k, n = inp[2*_ + 1], inp[2*_ + 2]
  30. s = 0
  31. while n > 0:
  32. # print n
  33. t = bisect(pow2m1, n)
  34. n -= pow2m1[t - 1] + 1
  35. s += pow(k, t)
  36. print s
  37.  
  38. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement