题解
查看原帖
题解
490562
marksman楼主2025/1/26 14:26

如果一个数能是序列中所有数的倍数,那么它一定是序列中的最大值。例如 [1,2,3,6] 中, 6 是所有数的倍数,而且它是序列中的最大值。

所以只需要找到最大值 tt, 然后用 tt 去对每一个 aia_i试除,判断 tt是不是每一个 aia_i的倍数,如果满足每一个 aia_i那么则满足要求所以输出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");
}
2025/1/26 14:26
加载中...