diff --git a/Gym/103446/D/D.cpp b/Gym/103446/D/D.cpp new file mode 100644 index 00000000..4c974ec0 --- /dev/null +++ b/Gym/103446/D/D.cpp @@ -0,0 +1,46 @@ +#include +#include +#include +#include +#include + +using std::cin; +using std::cout; +const char endl = '\n'; + +void solve() { + long long p, q; + + cin >> p >> q; + + long long g = std::experimental::gcd(p, q); + + p /= g, q /= g; + + for (int i = 1; i * i <= q; i++) { + if (q % i == 0) { + long long a = i, b = q / i; + + if (a * a + b * b == p) { + cout << a << ' ' << b << endl; + + return; + } + } + } + + cout << 0 << ' ' << 0 << endl; +} + +int main() { + std::ios::sync_with_stdio(false); + cin.tie(nullptr); + + int t; + + cin >> t; + + while (t--) solve(); + + return 0; +}