#include <bits/stdc++.h>
using namespace std;
const long long MAX = 1e15;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  ;
  int n, k;
  cin >> n >> k;
  vector<int> first(n);
  for (int i = 0; i < n; i++) cin >> first[i];
  vector<long long> pr(n + 1);
  for (int i = 0; i < n; i++) pr[i + 1] = pr[i] + first[i];
  map<long long, int> how;
  for (int i = 0; i < n; i++) {
    how[pr[i + 1]]++;
  }
  long long ans = 0;
  for (int i = 0; i < n; i++) {
    if (k == 1) {
      ans += how[k + pr[i]];
    } else {
      if (k == -1) {
        ans += how[k + pr[i]];
        ans += how[-k + pr[i]];
      } else {
        for (long long p = 1; p <= MAX; p *= k) {
          ans += how[p + pr[i]];
        }
      }
    }
    how[pr[i + 1]]--;
  }
  cout << ans;
  return 0;
}
