#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; } }