看官方的题解后瞎写的代码。求指教哪里有问题,先谢谢了
查看原帖
看官方的题解后瞎写的代码。求指教哪里有问题,先谢谢了
487952
madhat386楼主2022/3/30 12:47

看了官方的题解后,自己瞎写的代码。题目样例中的几个测了下都过了,但是提交爆0。求指教哪里有问题,先谢谢了

#include <iostream>
#include <cmath>
#include <algorithm>

using namespace std;

int main() {
    int t;
    cin >> t;
    long long x, z;
    while (t--) {
        cin >> x >> z;
        //d^2 = gcd(p^2*d^2,q*d^2) = gcd(x^2,z/x)
        long long d = sqrt(__gcd(x * x, z / x));
        //求出了d验证一下是否正确
        long long y = z / (x * d);
        if (__gcd(x, y) != d) {
            cout << -1 << endl;
        } else {
            cout << y << endl;
        }
    }
    return 0;
}

2022/3/30 12:47
加载中...