16pts,求助
查看原帖
16pts,求助
834542
HuangGuangWu666楼主2023/7/24 21:29
#include<bits/stdc++.h>
using namespace std;
inline void read(int& a){
    int s=0,w=1;
    char ch=getchar();
    while (ch < '0' || ch>'9')
    {
        if (ch == '-')
            w = -1;
        ch = getchar();
    }
    while (ch >= '0' && ch <= '9')
    {
        s = s * 10 + ch - '0';
        ch = getchar();
    }
    a = s * w;
}
int gcd(int a, int b){
	if (a % b == 0) return b;
	else return gcd(b, a % b);
}
int getGcd(int a,int b){
	int c;
	while(b){
		c=a;
		a=b;
		b=c%b;
	}
	return a;
}
int main() {
	int t;
	read(t);
	int n,a[1000001],m,l,sum=1;
	for(int i=0;i<t;i++){
		read(n);
		sum=1;
		l=0;
		for(int i=0;i<n;i++){
			read(a[i]);
			sum*=a[i];
		}
		m=a[0];
		for(int i=0;i<n;i++){
			m=gcd(m,a[i]);
		}
		for(int i=0;i<n;i++){
			if(i!=0){
				a[i]=a[i-1]/getGcd(a[i-1],a[i])*a[i];
			}
		}
		l=a[n-1];
		if(l*m==sum){
			cout<<"Yes"<<endl;
		}
		else{
			cout<<"No"<<endl;
		}
	}
	return 0;
}
2023/7/24 21:29
加载中...