代码RE了:
#include<bits/stdc++.h>
using namespace std;
long long p[10000010], n, k, cnt, ount = 1, ans;
bool a[100000010] = {};
int a1[100010000];
void gete(int n){
for(int i = 1;i * i <= n;i++){
if(n % i == 0){
a1[ount++] = i;
}
}
}
int main(){
int m;
cin >> m;
for(int k = 0;k < m;k++){
cin >> n;
gete(n);
for(int i = 2;i <= ount;i++){
if(a[i] == 0){
p[cnt++] = a1[i];
ans ^= a1[i];
}
for(int j = 0;j < cnt;j++){
if(p[j] * a1[i] > n){
break;
}
a[p[j] * i] = 1;
if(a1[i] % p[j] == 0){
break;
}
}
}
cout << ans << '\n';
}
return 0;
}