题解:P11124 [ROIR 2024 Day 2] 数组划分
注意到若
将数组中的数分解质因数,然后按照质因数个数的奇偶性分成两类涂色即可。
#include<bits/stdc++.h>
using namespace std;
int pf(int x){//质因数个数
int cnt,now=2;
while(x!=1){
if(x%now==0)cnt++,x/=now;
else now++;
if(now*now>x)now=x;
}
return cnt;
}
int main(){
ios::sync_with_stdio(0);cin.tie(0);
int n;cin>>n;
for(int i=0;i<n;i++){
int a;cin>>a;
if(pf(a)%2)cout<<1<<" ";
else cout<<2<<" ";
}
return 0;
}