#include using namespace std; using ll = long long; #define rep(i,m,n) for(int i=m; i prime_fact(ll N){ map res; for(ll i = 2LL; i*i <= N; ++i){ if(N % i != 0LL) continue; ll ex = 0LL; while(N % i == 0){ N /= i; ex++; } res[i] = ex; } if(N != 1LL) res[N] = 1LL; return res; } int main(){ ll X, A, Y, B; cin >> X >> A >> Y >> B; auto pf_X = prime_fact(X), pf_Y = prime_fact(Y); for(auto &p : pf_X){ p.second = p.second * A; } for(auto &p : pf_Y){ p.second = p.second * B; } for(auto p : pf_Y){ ll a = p.first; if(pf_X.find(a) == pf_X.end()){ cout << "No" << endl; return 0; }else if(pf_X[a] < p.second){ cout << "No" << endl; return 0; } } cout << "Yes" << endl; return 0; }