#include using namespace std; typedef long long ll; #define int ll #define REP(i,n) for(int i=0;i::infinity(); const int MOD = 1000000007; #define MAX_N 100010 // ユークリッドの互除法の変形 template T gcd(T a, T b) { while (a) { b %= a; swap(a, b); } return b; } // 最小公倍数 template T lcm(T a, T b) { return a / gcd(a,b) * b; } ll func(ll a, ll b, ll n) { ll lcmab = lcm(a, b); return lcmab * ((n + lcmab - 1) / lcmab); } signed main() { cin.tie(0); cout.tie(0); ios::sync_with_stdio(false); int L, R, M, K; cin >> L >> R >> M >> K; if(K == 0 || (L <= M && M <= R)) { printf("Yes\n"); return 0; } int cand = func(L * K, M, L * K); if(cand <= R * K) { printf("Yes\n"); } else { printf("No\n"); } return 0; }