求调
查看原帖
求调
917823
jingwenhan楼主2025/7/30 17:45
#include<bits/stdc++.h>
#define ll long long
using namespace std;
vector<int>zs;
int t,n,x,ans,a[10000010];
vector<int> ols(int n){
	vector<bool>s(n+1,true);
	vector<int>a;
	for(int i=2;i<=n;i++){
		if(s[i]) a.push_back(i);
		for(int j=0;j<a.size()&&i*a[j]<=n;j++) {
			s[i*a[j]]=false;
			if(i%a[j]==0) break;
		}
	}
	return a;
}
int main(){
	cin>>t;
	int maxx=0;
	for(int i=1;i<=t;i++){
		cin>>a[i];
		maxx=max(maxx,a[i]);
	}
	zs=ols(maxx+10);
	for(int j=1;j<=t;j++){
		ans=0;
		int sizee=zs.size();
		for(ll i=1;i<=sqrt(sizee);i++) while(a[j]%zs[i]==0){
			a[j]/=zs[i];
			ans^=zs[i];
			x++;
		}
		if(a[j]!=1) ans^=a[j];
		cout<<ans<<endl;
	}
	return 0;
}
2025/7/30 17:45
加载中...