import sys #sys.setrecursionlimit(10 ** 6) INF = float('inf') #10**20に変えるのもあり MOD = 10**9 + 7 MOD2 = 998244353 def solve(): def II(): return int(sys.stdin.readline()) def LI(): return list(map(int, sys.stdin.readline().split())) def LC(): return list(input()) def IC(): return [int(c) for c in input()] def MI(): return map(int, sys.stdin.readline().split()) def prime_factorize(n): a = [] while n % 2 == 0: a.append(2) n //= 2 f = 3 while f * f <= n: if n % f == 0: a.append(f) n //= f else: f += 2 if n != 1: a.append(n) return a A,B = MI() import collections APri = prime_factorize(A) BPri = prime_factorize(B) from collections import defaultdict ANum = defaultdict(lambda: 0) for a in APri: ANum[a]+=1 BNum = defaultdict(lambda: 0) for b in BPri: BNum[b]+=1 #print(ANum) #print(BNum) flag = True for a in ANum.keys(): if(ANum[a]*B != BNum[a]*A): flag = False for b in BNum.keys(): if (ANum[b] * B != BNum[b] * A): flag = False if(flag): print("Yes") else: print("No") return solve()