如果一个数能是序列中所有数的倍数,那么它一定是序列中的最大值。例如
[1,2,3,6] 中,
6 是所有数的倍数,而且它是序列中的最大值。
所以只需要找到最大值 t, 然后用 t 去对每一个 ai试除,判断 t是不是每一个 ai的倍数,如果满足每一个 ai那么则满足要求所以输出Yes,否则只要有一个不满足就可以直接输出No
int t; cin >> t;
while (t--) {
int n, maxa = 0;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
maxa = max(a[i], maxa);
}
bool flag = true;
for (int i = 1; i <= n; i++) {
if (maxa % a[i] != 0) {
flag = false;
break;
}
}
if (flag) puts("Yes");
else puts("No");
}