关注
这段代码时答案给的参考代码: #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;
}
查看原帖
点赞 评论
相关推荐
10-21 16:23
蚌埠坦克学院 嵌入式软件开发 点赞 评论 收藏
分享
投递锐捷网络股份有限公司等公司10个岗位 >
点赞 评论 收藏
分享
牛客热帖
正在热议
# 拼多多求职进展汇总 #
233271次浏览 2030人参与
# 在职场上,你最讨厌什么样的同事 #
5712次浏览 81人参与
# 北方华创开奖 #
66000次浏览 549人参与
# 25届秋招总结 #
396467次浏览 3975人参与
# 哪些公司校招卡第一学历 #
32827次浏览 105人参与
# 地方国企笔面经互助 #
6534次浏览 16人参与
# 阿里云管培生offer #
58950次浏览 1748人参与
# ai智能作图 #
21344次浏览 262人参与
# 硬件兄弟们 甩出你的华为奖状 #
77942次浏览 625人参与
# 实习,投递多份简历没人回复怎么办 #
2435776次浏览 34703人参与
# 工作中,你有没有遇到非常爱骂人的领导? #
4723次浏览 47人参与
# 实习与准备秋招该如何平衡 #
722780次浏览 8551人参与
# 我的实习求职记录 #
6121286次浏览 83953人参与
# 如果再来一次,你还会选择这个工作吗? #
110416次浏览 1109人参与
# 25届机械人为了秋招做了哪些准备? #
24989次浏览 355人参与
# 签了三方后想毁约怎么办 #
18562次浏览 111人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
9951次浏览 213人参与
# 机械求职避坑tips #
22153次浏览 240人参与
# 游戏求职进展汇总 #
52757次浏览 344人参与
# 夸夸我的求职搭子 #
132017次浏览 1360人参与
# 腾讯求职进展汇总 #
207561次浏览 1694人参与
# 实习想申请秋招offer,能不能argue薪资 #
35781次浏览 308人参与