思路:a1肯定是分子,a2肯定是分母,只要确认a1a3a4…/a2是否是整数。只要确认a1a3a4…/a2是否是整数。每次将a2=a2/gcd(a2,ai),i=(1,3,4,5…)
即可约分
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXSIZE = 10000;
int gcd(int x, int y) {
int m = x > y ? x : y , n = x + y - m;
int r = m % n;
while (r) {//辗转相除法求gcd
m = n;n = r;r = m % n;
}
return n;
}
int main()
{
int n,t,sign;
ll a[MAXSIZE];
cin >> t;
while (t--) {
sign = 0;
cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i];
for (int i = 0; i < n; i++) {
if (i == 1)continue;
a[1] /= gcd(a[1], a[i]);
if (a[1] == 1)sign = 1;
}
if (sign == 1)cout << "Yes\n";
else cout << "No\n";
}
return 0;
}