100pts 但Unaccepted
查看原帖
100pts 但Unaccepted
877691
MorLeaves楼主2024/4/11 08:36
#include<iostream>
#include<cstdio>
#include<cmath>
typedef long long ll;
using namespace std;
int T;
ll x,z;
ll gcd(ll a,ll b)
{
	return a%b==0?b:gcd(b,a%b);
}
int main()
{
	scanf("%d",&T);
	while(T--)
	{
		scanf("%lld %lld",&x,&z);
		if (z%x!=0)
		{
			printf("-1\n");
			continue;
		}
		ll t=gcd(z/x,x*x);
		ll p=(ll)sqrtl(t);
		if (p*p!=t)
		{
			printf("-1\n");
		}
		ll y=z/x/p;
		printf("%lld\n",y);
	}
	return 0;
}
2024/4/11 08:36
加载中...