体检
2024-04-14 21:48:12
发布于:广东
9阅读
0回复
0点赞
#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
typedef long long ll;
const int N = 1e5 + 10;
const ll A = 1e9;
int t,n;
bitset<31666> p;
vector<int> v;
void init() {
int r = sqrt(A);
for(int i=2;i<=r;i++) {
if (p[i]) {
continue;
}
v.push_back(i);
for(int j=2*i;j<=r;j+=i) {
p[j] = true;
}
}
}
int main() {
init();
ios::sync_with_stdio(false);
cin >> t;
while(t--) {
cin >> n;
unordered_map<int,int> vis;
int flag = 0;
for(int i=0;i<n;i++) {
int a;
cin >> a;
if (!flag) {
for(int &j:v) {
if (a % j == 0) {
vis[j];
if (vis[j] > 1) {
flag = 1;
}
while(a % j == 0)a /= j;
}
}
if (a != 1)vis[a];
if (vis[a] > 1) {
flag = 1;
}
}
}
if (flag)cout << "YES" << endl;
else cout << "NO" << endl;
}
return 0;
}
这里空空如也
有帮助,赞一个