SP30919 题解
题目传送门。
结论:最终输出的数一定是质数。
原因:假设有一个合数成为了最终输出的结果,那么这个合数中一定有一个质因子与序列中的所有数都互质。
举个例子:
5 7 25
(样例
而
因此答案是
代码实现部分
前置芝士:欧拉筛素数。
发现
然后对于每个
最后输出第一个没有打标记的质数即可。
#include<bits/stdc++.h>
using namespace std;
int isprime[10000005],prime[10000005],cnt,vis[10000005],f[10000005];
void getprime(int n){
memset(isprime,1,sizeof(isprime));
isprime[1]=0;
for(int i=2;i<=n;++i){
if(isprime[i])prime[++cnt]=f[i]=i;
for(int j=1;j<=cnt&&i*prime[j]<=n;++j){
isprime[i*prime[j]]=0;
f[i*prime[j]]=prime[j];
if(i%prime[j]==0)break;
}
}
}
inline int read(){
int x=0,f=1;
char c=getchar();
for (;c<'0'||c>'9';c=getchar())
if (c=='-') f=-1;
for (;c>='0'&&c<='9';c=getchar())
x=(x<<1)+(x<<3)+c-48;
return x*f;
}
int T,n,x;
int main(){
getprime(10000000);
T=read();
while(T--){
memset(vis,0,sizeof(vis));
n=read();
for(int i=1;i<=n;++i){
x=read();
while(x>1){
vis[f[x]]=1;
x/=f[x];
}
}
for(int i=1;i<=cnt;++i){
if(!vis[prime[i]]){
cout<<prime[i]<<endl;
break;
}
}
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】