mxqz 月赛 T3
查看原帖
mxqz 月赛 T3
324666
diqiuyi奶龙楼主2023/7/22 21:43

rt,WA 80pts

#include <bits/stdc++.h>
using namespace std;
inline int read(){
	int x=0;bool f=1;char c=getchar();
	while(c>'9'||c<'0'){if(c=='-')f=0;c=getchar();}
	while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+(c^48);c=getchar();}
	return f?x:-x;
}
int t,n,a,prime[10000],cnt;
bitset<100000005> vis2;
bitset<10005> vis;
int main(){
	for(int i=2;i<=10000;i++){
		if(!vis[i]) prime[++cnt]=i;
		for(int j=1;j<=cnt;j++){
			vis[i*prime[j]]=1;
			if(!(i%prime[j]))
				break;
		}
	}
//	printf("%d\n",cnt);
	t=read();
	while(t--){
		n=read();
//		printf("%d\n",n);
		bool flg=0;
		for(int i=1;i<=n;i++){
			a=read();
			for(int j=1;j<=cnt;j++)
				if(!(a%prime[j])){
					if(vis2[prime[j]]){
						flg=1;
						break;
					}
					vis2[prime[j]]=1;
					while(!(a%prime[j])) a/=prime[j];
				}
//			if(flg) puts("ssss");
			if(a>1){
				if(vis2[a]) flg=1;
				vis2[a]=1;
//				printf("%d %d\n",i,a); 
			}
		}
		puts((flg&&(n^2))?"No":"Yes");
		vis2.reset();
	}
    return 0;
}
2023/7/22 21:43
加载中...