/*CODED BY mahmudulsakib2019
DATE:-06/3/2024;TIME:-07:12 pm
BANGALDESH , SYLHET*/
#include <iostream>
#include <cmath> ///mathematics
#include <vector> ///array
#include <regex> ///searching_prefix_suffix
#include <algorithm> ///finding_max_min_from_array
#include <string> ///string_manipulation
#include <numeric> ///findin total sum of an array
using namespace std;
int main() {
int T;
cin >> T;
for(int i=0;i<T;i++) {
int a, b, c, X;
cin >> a >> b >> c >> X;
int GCM = (a*b)/__gcd(a,b);
GCM = (GCM*c)/__gcd(GCM,c);
int count = ((X-1)/GCM)*GCM;
if(count == 0){
cout << -1 << endl;
}
else{
cout << count << endl;
}
}
return 0;
}