8pts,无语
查看原帖
8pts,无语
565707
mediocre_楼主2023/7/23 10:49
#include<bits/stdc++.h>
using namespace std;
const int N = 10e5 + 6;
int n, a[N];
int gcd(int a, int b) {
	if (b == 0)
		return a;
	else
		return gcd(b, a % b);
}
int lcm(int a, int b) {
	return a * b / gcd(a, b);
}
int find_gcd(int arr[], int n) {
	int result = arr[0];
	for (int i = 1; i < n; i++) {
		result = gcd(result, arr[i]);
		if (result == 1) {
			return 1;
		}
	}
	return result;
}
int find_lcm(int arr[], int n) {
	int result = arr[0];
	for (int i = 1; i < n; i++) {
		result = lcm(result, arr[i]);
	}
	return result;
}
int main() {
	scanf("%d", &n);
	for (int i = 1; i <= n; ++i) {
		memset(a, 0, sizeof(a));
		int x, flag = 1;
		scanf("%d", &x);
		for (int j = 0; j < x; ++j) {
		    scanf("%d", &a[j]);
		    flag *= a[j];
		}
		if (flag == find_gcd(a, x) * find_lcm(a, x))
		    printf("Yes\n");
		else 
		    printf("No\n");
	}
	return 0;
}
2023/7/23 10:49
加载中...