rt,蒟蒻的代码是照着官方题解打的,但不知道由于什么原因没有输出‘-1’,望指教。
code:
#include <bits/stdc++.h>
using namespace std;
long double gcd(unsigned long long int a,unsigned long long int b)
{
return b ? gcd(b,a%b) : a;
}
unsigned long long int lcm(unsigned long long int a,unsigned long long int b)
{
return a*b/gcd(a,b);
}
int main()
{
int t;
cin>>t;
for(int i=1;i<=t;i++)
{
long double x,z;
cin>>x>>z;
long double d=sqrtl(gcd(x*x,z/x));
long double q,p;
p=x/d;
q=z/p/(d*d*d);
long double y=q*d;
if((long double)x*(long double)y*(long double)d==(long double)z)
{
cout<<(unsigned long long int)y<<endl;
}else{
cout<<"-1"<<endl;
}
}
return 0;
}