let () = let rec divisor n m lst = if n < m * m then lst else if n mod m = 0 then if m = n / m then divisor n (m+1) (m :: lst) else divisor n (m+1) (m :: (n / m) :: lst) else divisor n (m+1) lst in Scanf.scanf "%d %d\n" @@ fun a b -> let alst = List.fast_sort compare (divisor a 1 []) in let ans = List.fold_left (fun ans x -> if x mod b = 0 then true else ans) false alst in Printf.printf "%s\n" (if ans then "YES" else "NO")