fork download
  1. def gcd(a, b):
  2. while b:
  3. a, b = b, a % b
  4.  
  5. return a
  6.  
  7. def findNthNumber(a, b, d, n, l, r):
  8. m = l + (r - l)//2
  9.  
  10. t = m//a + m//b - m//(a*b/d)
  11. z = min(m % a, m % b, m % (a*b/d))
  12. print(a, b, d, n, l, r, m, t, z)
  13. if t == n:
  14. return m
  15. elif t > n:
  16. return findNthNumber(a, b, d, n, l, m)
  17. else:
  18. return findNthNumber(a, b, d, n, m, r)
  19.  
  20.  
  21. T = int(input())
  22.  
  23. for t in range(T):
  24. a, b, n = map(int, input().split())
  25. d = gcd(a, b)
  26. if a % b == 0:
  27. print(b*n)
  28. elif b % a == 0:
  29. print(a*n)
  30. else:
  31. print(findNthNumber(a, b, d, n, n, min(a, b)*n))
Success #stdin #stdout 0.01s 27712KB
stdin
1
6 8 10
stdout
6 8 2 10 10 60 35 8.0 3
6 8 2 10 35 60 47 11.0 5
6 8 2 10 35 47 41 10.0 1
41