记录编号 597552 评测结果 AAAAAAAAAA
题目名称 平方 最终得分 100
用户昵称 Gravatar黄天宇 是否通过 通过
代码语言 C++ 运行时间 0.692 s
提交时间 2024-11-29 17:15:02 内存使用 8.93 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n;
const int MAXN=1e6+5;
long long a[MAXN];
long long cnt[MAXN];
long long MOD=1e9+7; 
bool bo;
long long s[MAXN];
long long sum=1;
void fun(int x){
	for(int i=2;i<=sqrt(x);i++){
		while(x%i==0){
			x/=i;
			s[i]++;
		}
		if(s[i]%2!=0) cnt[i]++;//奇数个的次数 
		s[i]=0;
	}
	if(x>1) s[x]++;
	if(s[x]%2!=0) cnt[x]++;
	s[x]=0;
	return;
}
long long mi(long long x,int num){
	long long ans=1;
	while(num){
		if(num%2!=0){
			ans=(ans*x)%MOD;
		}
		x=(x*x)%MOD;
		num>>=1;
	}
	return ans;
}
int main(){
	freopen("pingfang.in","r",stdin);
	freopen("pingfang.out","w",stdout);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		fun(a[i]);
	}
	for(int i=2;i<=1e6+5;i++){
			if(cnt[i]<n-cnt[i]){
				sum=(sum*mi(i,cnt[i]))%MOD;
			}else{
				sum=(sum*mi(i,n-cnt[i]))%MOD;
			}
	}
	cout<<sum%MOD<<endl;
	return 0;
}