pj T2T3有民间数据了吗
T2 这里有一份代码求估分qwq
#include<bits/stdc++.h>
using namespace std;
#define For(i,j,k) for(register int i=j; i<=k; ++i)
#define ForDown(i,j,k) for(register int i=j; i>=k; i--)
#define il inline
#define ll long long
template<typename T>
il void read(T &x)
{
x=0;
char c=getchar();int mul=1;
while(!isdigit(c)) {
if(c=='-') mul=-1;
c=getchar();
}
while(isdigit(c))
{
x=(x<<3)+(x<<1)+c-'0';
c=getchar();
}
x*=mul;
}
ll gcd(ll a, ll b)
{
return b==0 ? a : gcd(b,a%b);
}
int T;
int main()
{
//freopen("math.in","r",stdin);
//freopen("math.out","w",stdout);
read(T);
while(T--)
{
//cerr<<T<<endl;
ll x,y,z;
read(x);
read(z);
if(z%x!=0)
{
puts("-1");
continue;
}
ll tmp=z/x;
ll a=gcd(tmp,x);
y=tmp/a;
if(gcd(x,y)!=a)
{
bool flg=1;
for(ll j=2;j<=a;j++)
{
ll i=y*j;
if(tmp%i) continue;
if(x*i*gcd(x,i)==z)
{
flg=0;
printf("%lld\n",i);
break;
}
}
if(flg) puts("-1");
}
else
printf("%lld\n",y);
}
fclose(stdin);
fclose(stdout);
return 0;
}