记录编号 597553 评测结果 AAAAAAAAAA
题目名称 平方 最终得分 100
用户昵称 Gravatar黄天乐 是否通过 通过
代码语言 C++ 运行时间 0.757 s
提交时间 2024-11-29 17:27:45 内存使用 8.96 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;
}