#include #include #include #include #include #include #include #include using namespace std; using ll = long long; using ull = unsigned long long; #define rep(i,n) for(long long i = 0; i < (int)n; i++) #define FOR(i, m, n) for(long long i = (m);i < (n); ++i) #define ALL(obj) (obj).begin(),(obj).end() #define SPEED cin.tie(0);ios::sync_with_stdio(false); template using V = vector; template using P = pair; template using PQ = priority_queue; template using PQR = priority_queue,greater>; void print(V ar) { for(auto x: ar)cout << x << " " ; cout << endl; } ll gcd(ll a, ll b) { if (a0) { if (n%2) { r*=x; r%=p; } x *= x; x %= p; n/=2; } return r; } const ll mod = 998244353; V> facts(ll n) { V> res; if (n==1)return res; for(int x = 2; x*x<=n; x++) { if (n%x==0) { int p = 0; while (n%x==0) { p+=1; n/=x; } res.emplace_back(P(x, p)); } } if (n!=1) { res.emplace_back(P(n, 1)); } return res; } int main() { ll x, y, a, b; cin >> x >> a >> y >> b; V> d1 = facts(x), d2 = facts(y); map mp; for(auto i : d1) { ll c = i.first; int d = i.second; mp[c] = d; //print({c,d}); } for(auto i : d2) { ll c = i.first; int d = i.second; //print({mp[c],c,d}); if (mp[c]*a