#include <bits/stdc++.h>
using namespace std;
const int maxn = 400005;
int a[maxn], b[maxn];
int c[maxn], d[maxn];
int pre1[maxn], pre2[maxn];
int main() {
  int n, m, k;
  scanf("%d %d %d", &n, &m, &k);
  int cnt = 0;
  for (int i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
    if (a[i] == 1) {
      cnt++;
    } else {
      c[cnt]++;
      cnt = 0;
    }
  }
  c[cnt]++;
  cnt = 0;
  for (int i = 1; i <= m; i++) {
    scanf("%d", &b[i]);
    if (b[i] == 1) {
      cnt++;
    } else {
      d[cnt]++;
      cnt = 0;
    }
  }
  d[cnt]++;
  for (int i = maxn - 2; i >= 1; i--) {
    int x = c[i];
    if (x) {
      for (int j = 1; j <= i; j++) {
        pre1[j] += x * (i - j + 1);
      }
    }
    x = d[i];
    if (x) {
      for (int j = 1; j <= i; j++) {
        pre2[j] += x * (i - j + 1);
      }
    }
  }
  long long ans = 0;
  for (int i = 1; i <= sqrt(k); i++) {
    if (k % i == 0) {
      int k1 = i;
      int k2 = k / i;
      if (k1 < maxn - 2 && k2 < maxn - 2) {
        if (k1 == k2) {
          ans += 1ll * (pre1[k1] * pre2[k2]);
        } else {
          ans += 1ll * (pre1[k1] * pre2[k2]);
          ans += 1ll * (pre1[k2] * pre2[k1]);
        }
      }
    }
  }
  cout << ans << endl;
  return 0;
}
