求助,70pts
查看原帖
求助,70pts
520777
LaoXu666楼主2023/11/12 21:27
#include<bits/stdc++.h>

using namespace std;
#define ll long long
ll x, z;

int gcd(ll X, ll Y) {
	if (Y == 0) return X;
	if (X == 0) return Y;
	return gcd(Y, X % Y);
}

ll T;

void Func() {
	z /= x;
	ll GCD = gcd(x * x, z);
	ll Sqrt = sqrtl(GCD);
	if (Sqrt * Sqrt != GCD) std::cout << "-1\n";
	else std::cout << z / Sqrt << '\n';
}

int main() {
	freopen("math.in", "r", stdin);
	freopen("math.out", "w", stdout);
	cin >> T;
	for (int i = 0; i < T; i++) {
		cin >> x >> z;
		if (z % x != 0) {
			std::cout << "-1\n";
			continue;
		}
		Func();
	}
	return 0;
}

rt 能调一调吗

2023/11/12 21:27
加载中...