以下是蒟蒻的代码:
#include<bits/stdc++.h>
#define endl '\n'
#define lowbit(x) x&(-x)
#define small priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>>
using namespace std;
typedef double db;
typedef long long ll;
typedef __int128 III;
const db eqs=1e-6;
const int inf=1e9;
void ll_cmax(ll &a,ll b){a=a>b?a:b;}
void ll_cmin(ll &a,ll b){a=a<b?a:b;}
void int_cmax(int &a,int b){a=a>b?a:b;}
void int_cmin(int &a,int b){a=a<b?a:b;}
bool db_eq(db a,db b){return fabs(a-b)<eqs;}
bool number(char ch){return ch>='0' && ch<='9';}
bool minuscule(char ch){return ch>='a' && ch<='z';}
int sqlong(int n){int sq=sqrt(n)+1;return min(sq,n);}
const int MAXN=1000000+5;
int cnt[MAXN],n;
bitset<MAXN>a;
vector<int>x;
void FilterPrimeNumbers(int n)
{
a[0]=a[1]=1;
for(int i=2;i<=n;i++)
{
if(!a[i]) x.push_back(i);
for(int j=0;j<x.size();j++)
{
if(i*x[j]>n) break;
a[i*x[j]]=1;
if(i%x[j]==0) break;
}
}
}
void DecomposePrimeFactor(int x)
{
for(int i=1;i*i<=x;i++)
{
if(!a[i] && x%i==0)
{
while(x%i==0) x/=i;
cnt[i]++;
if(x==1) break;
}
}
if(x!=1) cnt[x]++;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
FilterPrimeNumbers(1000000);
cin>>n;
int x;
for(int i=1;i<=n;i++)
{
cin>>x;
DecomposePrimeFactor(x);
}
int maxn=0;
for(int i=1;i<=1000000;i++)
{
int_cmax(maxn,cnt[i]);
}
// cout<<maxn<<endl;
if(maxn==1) cout<<"pairwise coprime\n";
else if(maxn==n) cout<<"not coprime\n";
else cout<<"setwise coprime\n";
return 0;
}