就是考场上口胡了一个歪解,但是改了改之后把4个样例都A掉了,好像有希望的样子。求大佬看看能胡多少分!(前三个比较有依据的会给关注!)
#include<algorithm>
#include<iostream>
#include<cstdio>
#include<cmath>
#include<map>
using namespace std;
int main()
{
freopen("math.in","r",stdin);
freopen("math.out","w",stdout);
long long m,n,i,j,t,x,z,k,y,yy,f;
scanf("%lld",&t);
for(i=1;i<=t;i++)
{
scanf("%lld %lld",&x,&z);
y=((z/x)/__gcd(x,(z/x)));
if(x*y*__gcd(x,y)==z)
{
printf("%lld\n",y);
}
else
{
f=0;
for(j=2;j<=150;j++)
{
yy=y*j;
if(x*yy*__gcd(x,yy)==z)
{
printf("%lld\n",yy);
f=1;
break;
}
}
if(f==0) printf("-1\n");
}
}
return 0;
}
求求你们啦!