#include <bits/stdc++.h>
using namespace std;
int n;
long long T[100001];
long long nwd(long long a, long long b) {
  if (a == 0)
    return b;
  else
    return nwd(b % a, a);
}
long long nww(long long a, long long b) { return a / nwd(a, b) * b; }
bool rozklad(long long a) {
  while (a > 1 && a % 2 == 0) a /= 2;
  while (a > 1 && a % 3 == 0) a /= 3;
  return a == 1;
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%lld", &T[i]);
  long long it = T[0];
  for (int i = 0; i < n; i++) {
    long long temp = nww(it > T[i] ? it : T[i], it > T[i] ? T[i] : it);
    if (!rozklad(temp / it) || !rozklad(temp / T[i])) {
      printf("No\n");
      return 0;
    }
    it = temp;
  }
  printf("Yes\n");
}
