#include<bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
using namespace std;
#define int long long
//#define int unsigned long long
//define int __int128
#define all(x) x.begin(),x.end()
#define pb push_back
#define pf push_front
#define rall(x) x.rbegin(),x.rend()
const int N=1e6+7,mod=998244353,MOD=1000000007,dom=0,inf=2147483647;//,INF=9223372036854775807;
int n,a[N],x,cnt[N],ans=0;
void solve(int TCS){
cin>>n;
for(int i=2;i<=n;i++){
x=n/i;
cnt[0]+=x,cnt[i]-=x;
if(n%i!=0){
cnt[1]++,cnt[n%i+1]--;
}
}
for(int i=1;i<n;i++){
cnt[i]+=cnt[i-1];
}
for(int i=1;i<=n;i++){
cin>>a[i];
ans^=a[i];
}
for(int i=1;i<n;i++){
if(cnt[i]%2!=0){
ans^=i;
}
}
cout<<ans;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
int T=1;
//cin>>T;
for(int TCS=1;TCS<=T;TCS++){
solve(TCS);
}
}
//Bismillah
//33 Subhanallah
//33 Alhamdulillah
//33 Allahu Akbar
/*
*/
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk9mYXN0IikKI3ByYWdtYSBHQ0MgdGFyZ2V0KCJzc2Usc3NlMixzc2UzLHNzc2UzLHNzZTQscG9wY250LGFibSxtbXgsYXZ4LHR1bmU9bmF0aXZlIikKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBpbnQgbG9uZyBsb25nCi8vI2RlZmluZSBpbnQgdW5zaWduZWQgbG9uZyBsb25nCi8vZGVmaW5lIGludCBfX2ludDEyOAojZGVmaW5lIGFsbCh4KSB4LmJlZ2luKCkseC5lbmQoKQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIHBmIHB1c2hfZnJvbnQKI2RlZmluZSByYWxsKHgpIHgucmJlZ2luKCkseC5yZW5kKCkKY29uc3QgaW50IE49MWU2KzcsbW9kPTk5ODI0NDM1MyxNT0Q9MTAwMDAwMDAwNyxkb209MCxpbmY9MjE0NzQ4MzY0NzsvLyxJTkY9OTIyMzM3MjAzNjg1NDc3NTgwNzsKaW50IG4sYVtOXSx4LGNudFtOXSxhbnM9MDsKdm9pZCBzb2x2ZShpbnQgVENTKXsKICAgIGNpbj4+bjsKICAgIGZvcihpbnQgaT0yO2k8PW47aSsrKXsKICAgICAgICB4PW4vaTsKICAgICAgICBjbnRbMF0rPXgsY250W2ldLT14OwogICAgICAgIGlmKG4laSE9MCl7CiAgICAgICAgICAgIGNudFsxXSsrLGNudFtuJWkrMV0tLTsKICAgICAgICB9CiAgICB9CiAgICBmb3IoaW50IGk9MTtpPG47aSsrKXsKICAgICAgICBjbnRbaV0rPWNudFtpLTFdOwogICAgfQogICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgIGNpbj4+YVtpXTsKICAgICAgICBhbnNePWFbaV07CiAgICB9CiAgICBmb3IoaW50IGk9MTtpPG47aSsrKXsKICAgICAgICBpZihjbnRbaV0lMiE9MCl7CiAgICAgICAgICAgIGFuc149aTsKICAgICAgICB9CiAgICB9CiAgICBjb3V0PDxhbnM7Cn0Kc2lnbmVkIG1haW4oKXsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CiAgICAvL2ZyZW9wZW4oImlucHV0LnR4dCIsInIiLHN0ZGluKTsKICAgIC8vZnJlb3Blbigib3V0cHV0LnR4dCIsInciLHN0ZG91dCk7CiAgICBpbnQgVD0xOwogICAgLy9jaW4+PlQ7CiAgICBmb3IoaW50IFRDUz0xO1RDUzw9VDtUQ1MrKyl7CiAgICAgICAgc29sdmUoVENTKTsKICAgIH0KfQovL0Jpc21pbGxhaAovLzMzIFN1YmhhbmFsbGFoCi8vMzMgQWxoYW1kdWxpbGxhaAovLzMzIEFsbGFodSBBa2JhcgovKgoKKi8K