#include <iostream> #include <string> #include <algorithm> #include <vector> #include <iomanip> #include <cmath> #include <stdio.h> #include <queue> #include <deque> #include <cstdio> #include <set> #include <map> #include <bitset> #include <stack> #include <cctype> using namespace std; vector<long long> vec; bool b[100] = { false }; int co = 0; int main() { long long n, h; cin >> n >> h; for (long long i = 2; i * i <= h; i++) { if (h % i == 0) { while (h % i == 0) { h /= i; vec.emplace_back(i); } } } if (h != 0) { vec.emplace_back(h); } for (int i = 0; i < n; i++) { long long a; cin >> a; for (int j = 0; j < vec.size(); j++) { if (a % vec[j] == 0 && !b[j]) { b[j] = true; a /= vec[j]; co++; } } } if (co == vec.size()) { cout << "YES" << endl; } else { cout << "NO" << endl; } }