#include <bits/stdc++.h>
using namespace std;
const int e = 300010;
int n, m;
int p, t, k;
long long ans, a[e];
vector<long long> sum[110][110];
long long ss[e];
int T = 0;
int tot = 0;
long long tmp[e], tmp2[e];
int kuai(int x) { return (x - 1) / T; }
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%lld", &a[i]);
    ss[i] = ss[i - 1] + a[i];
  }
  T = ceil(sqrt(n));
  long long tt = 0;
  for (int i = 2; i <= min(n, 108); i++) {
    for (int j = 0; j < i; j++) {
      tot = 0;
      for (int l = 0; l * i + j <= n; l++) {
        tmp[++tot] = a[l * i + j];
      }
      tt = 0;
      for (int l = 1; l <= tot; l++) {
        tt += tmp[l];
        if (l % T == 0) {
          tmp2[l / T] = tt;
        }
      }
      tmp2[tot / T + 1] = tt;
      for (int l = 0; l <= tot / T; l++) {
        sum[i][j].push_back(tmp2[l + 1]);
      }
    }
  }
  scanf("%d", &m);
  for (int i = 1; i <= m; i++) {
    ans = 0;
    scanf("%d%d", &t, &k);
    p = t;
    if (k == 1) {
      ans = ss[n] - ss[t - 1];
      printf("%lld\n", ans);
      continue;
    }
    if (k > 101) {
      while (p <= n) {
        ans += a[p];
        p += k;
      }
      printf("%lld\n", ans);
    } else {
      int t1 = t / k, t2 = t % k;
      int len = sum[k][t2].size();
      long long ans1 = 0;
      if (kuai(t1) != 0)
        ans1 = sum[k][t2][len - 1] - sum[k][t2][kuai(t1) - 1];
      else
        ans1 = sum[k][t2][len - 1];
      long long ans2 = 0;
      for (int q = t2 + k * (T * kuai(t1)); q <= n and q < t; q += k) {
        ans2 += a[q];
      }
      printf("%lld\n", ans1 - ans2);
    }
  }
  return 0;
}
