Mocha 认为一个数组 a 是美丽的,如果存在两个下标 i 和 j(1 ≤ i, j ≤ n,i ≠ j),使得对于所有 k(1 ≤ k ≤ n),a_k 都能被 a_i 或 a_j 整除。
首先,一个数组的最小值一定是ai和aj其中之一,那么首先选取最小值,然后将数组中最小值的倍数全部消去,同理再执行一次此操作,看数组是否全部清空
include<bits/stdc++.h>
using namespace std;
int a[100010];
void solve()
{
vector
int n,i,j;
cin >> n;
for(i=0;i<n;i++)
cin >> a[i];
sort(a,a+n);
for(i=1;i<n;i++)
{
if(a[i]%a[0])
b.push_back(a[i]);
}
if(b.size()<=1)
{
cout <<"Yes\n";
return ;
}
for(i=1;i<b.size();i++)
{
if(b[i]%b[0])
{
cout << "No\n";
return ;
}
}
cout << "Yes\n";
}
int main() {
int t;
cin >> t;
while(t--)
solve();
return 0;
}
