read_line.to_i.times do puts solve end def solve a, b, k = read_line.split.map(&.to_i64) lcm = a.lcm(b) c = lcm - lcm // a - lcm // b + 1 m = k // c k %= c return m * lcm - 1 if k == 0 lo = 0i64 hi = lcm while hi - lo > 1 mid = (lo + hi) // 2 cc = mid - mid // a - mid // b if cc > k hi = mid else lo = mid end end while lo % a == 0 || lo % b == 0 lo -= 1 end return m * lcm + lo end