fn main() { let mut xayb = String::new(); std::io::stdin().read_line(&mut xayb).ok(); let xayb: Vec = xayb.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let x = xayb[0]; let a = xayb[1]; let y = xayb[2]; let b = xayb[3]; if y == 1 { println!("Yes"); return; } let mut val = 0usize; let mut target = x.max(y); while target % x.min(y) == 0 { target /= x.min(y); val += 1; } if x >= y { if val == 0 { println!("No"); } else if (val * a) % b == 0 { println!("Yes"); } else { println!("No"); } } else { if val == 0 || target > 1 { println!("No"); } else if a % (val * b) == 0 { println!("Yes"); } else { println!("No"); } } }