#include <bits/stdc++.h>
#pragma GCC optimize("O2")
using namespace std;
const int N = 1e6 + 10;
const long long mod = 1e9 + 7;
const long long mod2 = 998244353;
const long long inf = 8e18;
const int LOG = 22;
long long pw(long long a, long long b, long long M) {
  return (!b ? 1
             : (b & 1 ? (a * pw(a * a % M, b / 2, M)) % M
                      : pw(a * a % M, b / 2, M)));
}
long long A[N];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%lld", &A[i]);
  }
  long long tot = 0;
  for (int l = 1; l <= n - 2; l++) {
    long long sum = 0;
    for (int r = l + 2; r <= n; r++) {
      sum += A[r - 1];
      if (2 * A[l] < sum) break;
      if ((A[l] ^ A[r]) == sum && A[l] >= A[r]) tot++;
    }
  }
  reverse(A + 1, A + n + 1);
  for (int l = 1; l <= n - 2; l++) {
    long long sum = 0;
    for (int r = l + 2; r <= n; r++) {
      sum += A[r - 1];
      if (2 * A[l] < sum) break;
      if ((A[l] ^ A[r]) == sum && A[l] >= A[r]) tot++;
    }
  }
  printf("%lld", tot);
  return 0;
}
