#define _GLIBCXX_DEBUG
#include <bits/stdc++.h>
#include <atcoder/dsu>
#include <atcoder/math>
using namespace atcoder;
using namespace std;
typedef long long ll;
#define rep(i,a,b) for(int i=a;i<b;i++)
using vi = vector<int>; 
using vvi = vector<vi>; 
using li =vector<ll>;
using lli=vector<li>;
using si =vector<char>;
using ssi =vector<si>;
const long long INF = 1e18;
const long long MOD=1e9+7;
//for (auto [key, val] : mp)
int main() { ll t;cin>>t;
while(t--){
	ll p,q,k;cin>>p>>q>>k;
	ll g=gcd(p,q);
	p/=g;q/=g;
	ll ok=min(p,q)*k,ng=0;
	while(ok-ng>1){
		ll mid=(ok+ng)/2;
		ll sum=floor_sum(min(mid/p+1,q),q,-1*p,mid)+min(mid/p+1,q);
	if(sum>k)ok=mid;
	else ng=mid;
	}
	cout<<ok*g<<endl;
		
	}
}