蜜汁超时,求条调
#include<bits/stdc++.h>
using namespace std;
int a[100000],b[1000000],m,t,k;
int n;
int x;
bool y;
float z;
void f(int x) {
int i=2;
while(i<=x) {
if(x%i==0) {
b[i]++;
x/=i;
} else i++;
}
return ;
}
int read() {
int x = 0, w = 1;
char ch = 0;
while (ch < '0' || ch > '9') {
if (ch == '-') w = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9') {
x = x * 10 + (ch - '0');
ch = getchar();
}
return x * w;
}
int main() {
t=read();
for(int o=1; o<=t; o++) {
y=0;
memset(b,0,sizeof(b));
n=read();
for(int i=1; i<=n; i++) {
a[i]=read();
f(a[i]);
x=max(x,a[i]);
}
for(int j=1; j<=x; j++) {
if(b[j]%n!=0) {
y=1;
printf("NO\n");
break;
}
}
if(y==0) {
printf("YES\n");
}
}
return 0;
}