关注
这段代码时答案给的参考代码: #include<bits/stdc++.h>
using namespace std;
const int mod=1000000007;
int f[10005];
vector<int> p;
int a[10005];
priority_queue<int> que;
int read() {
char c=getchar(); int x=0;
while (c<'0' || c>'9') c=getchar();
while (c>='0' && c<='9') {
x=x*10+c-'0';
c=getchar();
}
return x;
}
int main() {
memset(f,0,sizeof(f));
for (int i=2; i<=10000; i++) {
if (f[i]==0) {
p.push_back(i);
for (int j=i*2; j<=10000; j+=i) f[j]=1;
}
}
int T=read();
while (T--) {
int n=read();
for (int i=1; i<=n; i++) a[i]=read();
long long ans=1;
for (int i=0; i<p.size(); i++) {
for (int j=1; j<=n; j++) {
int t=0;
while (a[j]%p[i]==0) a[j]/=p[i],++t;
if (t>0) que.push(t);
}
while (que.size()>1) {
int a=que.top(); que.pop();
int b=que.top(); que.pop();
--a; --b;
if (a>0) que.push(a);
if (b>0) que.push(b);
}
if (que.empty()) que.push(0);
int cnt=que.top(); que.pop();
while (cnt--) ans=(ans*p[i])%mod;
}
sort(a+1,a+n+1);
for (int i=1; i<=n-1; i++) {
if (a[i]==a[i+1]) {
a[i]=a[i+1]=1;
}
}
for (int i=1; i<=n; i++) ans=(ans*a[i])%mod;
printf("%lld\n", ans);
}
return 0;
}
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 在大厂上班是一种什么样的体验 #
10273次浏览 127人参与
# 你认为工作的意义是什么 #
249067次浏览 1498人参与
# 程序员找工作至少要刷多少题? #
17717次浏览 241人参与
# 为了减少AI幻觉,你注入过哪些设定? #
4259次浏览 143人参与
# 我现在比当时_,你想录用我吗 #
8492次浏览 111人参与
# 机械人避雷的岗位/公司 #
43260次浏览 294人参与
# 一张图晒一下你的AI员工 #
4836次浏览 112人参与
# 论秋招对个人心气的改变 #
10404次浏览 154人参与
# 关于春招/暑期实习,你想知道哪些信息? #
7204次浏览 119人参与
# 刚入职的你踩过哪些坑 #
6574次浏览 127人参与
# AI Coding的使用心得 #
4437次浏览 99人参与
# 晒晒你司的新年福利 #
8264次浏览 104人参与
# 牛客AI体验站 #
6489次浏览 178人参与
# 12306一秒售罄,你抢到回家的票了吗? #
1858次浏览 47人参与
# 柠檬微趣工作体验 #
14762次浏览 83人参与
# 总结:哪家公司面试体验感最差 #
92924次浏览 430人参与
# 程序员能干到多少岁? #
8361次浏览 115人参与
# 你认为小厂实习有用吗? #
117972次浏览 679人参与
# 互联网公司评价 #
485459次浏览 4109人参与
# 应届生进小公司有什么影响吗 #
118201次浏览 1159人参与
