Wrong Answer.wrong answer On line 1 column 1, read 4, expected 2.
#include<bits/stdc++.h>
using namespace std;
int v[100000010],p[5770000],cnt;
void init(){
for(int i=2;i<=100000000;++i){
if(!v[i]) p[++cnt]=i;
for(int j=1;j<=cnt&&(long long)p[j]*i<=100000000;++j){
v[p[j]*i]=p[j];
if(!(i%p[j])) break;
}
}
}
int main(){
init();
int n,t,ans;
cin>>t;
while(t--){
ans=0;
cin>>n;
if(v[n]=0){cout<<n<<"\n";continue;}
while(1){
if(!v[n]){ans^=n;break;}
ans^=v[n];
n/=v[n];
}
cout<<ans<<"\n";
}
return 0;
}
R197494159