#include <bits/stdc++.h>
int N;
long long BIT[1000010];
void add(int i, int val) {
  while (i <= N) {
    BIT[i] += val;
    i += i & (-i);
  }
}
long long query(int i) {
  long long ans = 0;
  while (i > 0) {
    ans += BIT[i];
    i -= i & (-i);
  }
  return ans;
}
int main() {
  int n;
  scanf("%d", &n);
  N = n + 2;
  int ans = 0;
  for (int i = 0; i < n; i++) {
    int x;
    scanf("%d", &x);
    ans ^= x;
  }
  for (int i = 1; i <= n; i++) {
    add(1, (n / i));
    add(i + 1, -(n / i));
    if (n % i > 0) {
      add(2, 1);
      add(2 + n % i, -1);
    }
  }
  for (int i = 1; i <= n; i++) {
    long long p = query(i);
    if (p & 1) ans ^= (i - 1);
  }
  printf("%d\n", ans);
  return 0;
}
