#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; long long binary_gcd(long long a,long long b) { if(a == 0 || b == 0) return a+b; int k = 0; while(!((a&1)|(b&1))) { k++; a >>= 1; b >>= 1; } while (a != b) { while(!(a&1)) a >>= 1; while(!(b&1)) b >>= 1; if(a > b) a -= b; else if(a < b) b -= a; } return a << k; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N; long long K; cin >> N >> K; vectorX(N); for(int i = 0; i < N; i++) { cin >> X[i]; } while(K > 1) { long long g = -1; for(int i = 0; i < N; i++) { if(binary_gcd(K,X[i]) != 1) { g = binary_gcd(K,X[i]); break; } } if(g == -1) { break; } K /= g; for(int i = 0; i < N; i++) { X[i] /= binary_gcd(g,X[i]); } } cout << ((K == 1)?"Yes":"No") << "\n"; }