#include // #include // NOTE: AtCoderライブラリ #define rep(i, n) for (int i = 0; i < (int)(n); i++) using namespace std; // using namespace atcoder; // NOTE: AtCoderライブラリ typedef long long ll; typedef long double ld; typedef vector vi; typedef vector vl; typedef vector vb; typedef vector vc; typedef pair pii; // #define INF __INT32_MAX__ // #define INF 1e9 // #define LINF __LONG_LONG_MAX__ int main() { int N, H; cin >> N >> H; map hg; for (int i = 2; i <= sqrt(H); i++) { if (H % i != 0) continue; int ext = 0; while (H % i == 0) { ext++; H /= i; } hg[i] += ext; } if (H != 1) hg[H]++; // for (auto x : hg) { cout << x.first << "^" << x.second << endl; } vector A(N); rep(i, N) { cin >> A[i]; } rep(i, N) { if (A[i] == 1) continue; for (auto x : hg) { if (x.second < 1) continue; if (A[i] % x.first != 0) continue; while (A[i] % x.first == 0) { if (x.second < 1) break; A[i] /= x.first; hg[x.first]--; } } } bool ok = true; for (auto x : hg) { if (x.second > 0) ok = false; } // for (auto x : hg) { cout << x.first << "^" << x.second << endl; } if (ok) { cout << "YES" << endl; } else { cout << "NO" << endl; } }