#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2e5 + 5;
int a[MAXN], b[MAXN];
long long suba[MAXN], subb[MAXN];
int main() {
  long long n, m, k;
  scanf("%lld%lld%lld", &n, &m, &k);
  long long jzk = 0;
  for (int i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
    if (a[i] == 1)
      jzk++;
    else {
      for (int j = jzk; j >= 1; j--) suba[j] += jzk - j + 1;
      jzk = 0;
    }
  }
  for (int j = jzk; j >= 1; j--) suba[j] += jzk - j + 1;
  jzk = 0;
  for (int i = 1; i <= m; i++) {
    scanf("%d", &b[i]);
    if (b[i] == 1)
      jzk++;
    else {
      for (int j = jzk; j >= 1; j--) subb[j] += jzk - j + 1;
      jzk = 0;
    }
  }
  for (int j = jzk; j >= 1; j--) subb[j] += jzk - j + 1;
  long long sqrtk = sqrt(k);
  long long ans = 0;
  for (long long i = 1; i <= sqrtk; i++) {
    if (k % i == 0) {
      if (i <= 40000 && k / i <= 40000) ans += suba[i] * subb[k / i];
      if (i * i != k) {
        if (i <= 40000 && k / i <= 40000) ans += suba[k / i] * subb[i];
      }
    }
  }
  printf("%lld\n", ans);
}
