def gcd(a, b):
while b:
a, b = b, a % b
return a
def findNthNumber(a, b, d, n, l, r):
m = l + (r - l)//2
t = m//a + m//b - m//(a*b/d)
#print(a, b, d, n, l, r, m, t, z)
if t == n:
return m - min(m % a, m % b, m % (a*b/d))
elif t > n:
return findNthNumber(a, b, d, n, l, m)
else:
return findNthNumber(a, b, d, n, m, r)
T = int(input())
for t in range(T):
try:
a, b, n = map(int, input().split())
d = gcd(a, b)
if a % b == 0:
result = b*n
elif b % a == 0:
result = a*n
else:
result = findNthNumber(a, b, d, n, max(min(a, b), n), min(a, b)*n)
print(result)
except:
print(result)
ZGVmIGdjZChhLCBiKToKICAgIHdoaWxlIGI6CiAgICAgICAgYSwgYiA9IGIsIGEgJSBiCgogICAgcmV0dXJuIGEKCmRlZiBmaW5kTnRoTnVtYmVyKGEsIGIsIGQsIG4sIGwsIHIpOgogICAgbSA9IGwgKyAociAtIGwpLy8yCgogICAgdCA9IG0vL2EgKyBtLy9iIC0gbS8vKGEqYi9kKQogICAgI3ByaW50KGEsIGIsIGQsIG4sIGwsIHIsIG0sIHQsIHopCiAgICBpZiB0ID09IG46CiAgICAgICAgcmV0dXJuIG0gLSBtaW4obSAlIGEsIG0gJSAgYiwgbSAlIChhKmIvZCkpCiAgICBlbGlmIHQgPiBuOgogICAgICAgIHJldHVybiBmaW5kTnRoTnVtYmVyKGEsIGIsIGQsIG4sIGwsIG0pCiAgICBlbHNlOgogICAgICAgIHJldHVybiBmaW5kTnRoTnVtYmVyKGEsIGIsIGQsIG4sIG0sIHIpCgoKVCA9IGludChpbnB1dCgpKQoKZm9yIHQgaW4gcmFuZ2UoVCk6CiAgICB0cnk6CiAgICAgICAgYSwgYiwgbiA9IG1hcChpbnQsIGlucHV0KCkuc3BsaXQoKSkKICAgICAgICBkID0gZ2NkKGEsIGIpCiAgICAgICAgaWYgYSAlIGIgPT0gMDoKICAgICAgICAgICAgcmVzdWx0ID0gYipuCiAgICAgICAgZWxpZiBiICUgYSA9PSAwOgogICAgICAgICAgICByZXN1bHQgPSBhKm4KICAgICAgICBlbHNlOgogICAgICAgICAgICByZXN1bHQgPSBmaW5kTnRoTnVtYmVyKGEsIGIsIGQsIG4sIG1heChtaW4oYSwgYiksIG4pLCBtaW4oYSwgYikqbikKICAgICAgICBwcmludChyZXN1bHQpCiAgICBleGNlcHQ6CiAgICAgICAgcHJpbnQocmVzdWx0KQ==