#include #include using namespace std; // ユークリッドの互除法で最大公約数を求める long long my_gcd(long long a, long long b) { if(b == 0) return llabs(a); return my_gcd(b, a % b); } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); long long a, b, c, d; cin >> a >> b >> c >> d; // 4成分の最大公約数を求める long long g = my_gcd(a, b); g = my_gcd(g, c); g = my_gcd(g, d); // 全ての成分が0の場合 if(g == 0){ cout << "0 0\n"; return 0; } long long det = a * d - b * c; long long d2 = llabs(det) / g; cout << g << " " << d2 << "\n"; return 0; }