#include <bits/stdc++.h>
using namespace std;
int main(){
    long long X, A, Y, B;
    cin >> X >> A >> Y >> B;
    map<long long, long long> mx, my;
    for(long long i = 2; i * i <= X; i++){
        while(X % i == 0){
            mx[i]++;
            X /= i;
        }
    }
    if(X != 1) mx[X]++;
    for(auto &v : mx){
        v.second *= A;
    }
    for(long long i = 2; i * i <= Y; i++){
        while(Y % i == 0){
            my[i]++; 
            Y /= i;   
        }
    }
    if(Y != 1) my[Y]++;
    for(auto &v : my){
        v.second *= B;
    }
    bool f = true;
    for(auto v : my){
        if(v.second > mx[v.first]) f = false;
    }
    if(f) cout << "Yes" << endl;
    else cout << "No" << endl;
}