#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e9, MOD = INF + 7;
const int N = 1e5 + 5, M = 60;
int n, a[N];
int seg[4 * N][M];
void build(int id = 1, int s = 0, int e = n) {
  if (e - s < 2) {
    for (int i = 0; i < M; i++) seg[id][i] = 1 + (i % a[s] == 0);
    return;
  }
  int md = (s + e) / 2;
  build(2 * id, s, md);
  build(2 * id + 1, md, e);
  for (int i = 0; i < M; i++)
    seg[id][i] = seg[2 * id][i] + seg[2 * id + 1][(i + seg[2 * id][i]) % M];
}
void update(int p, int x, int id = 1, int s = 0, int e = n) {
  if (e - s < 2) {
    a[s] = x;
    for (int i = 0; i < M; i++) seg[id][i] = 1 + (i % a[s] == 0);
    return;
  }
  int md = (s + e) / 2;
  if (p < md)
    update(p, x, 2 * id, s, md);
  else
    update(p, x, 2 * id + 1, md, e);
  for (int i = 0; i < M; i++)
    seg[id][i] = seg[2 * id][i] + seg[2 * id + 1][(i + seg[2 * id][i]) % M];
}
int get(int l, int r, int t, int id = 1, int s = 0, int e = n) {
  if (l <= s && e <= r) return seg[id][t];
  if (l >= e || s >= r) return 0;
  int md = (s + e) / 2;
  int L = get(l, r, t, 2 * id, s, md);
  int R = get(l, r, (t + L) % M, 2 * id + 1, md, e);
  return L + R;
}
int32_t main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  cin >> n;
  for (int i = 0; i < n; i++) cin >> a[i];
  build();
  int q;
  cin >> q;
  while (q--) {
    char t;
    cin >> t;
    int x, y;
    cin >> x >> y;
    if (t == 'A') {
      x--;
      y--;
      cout << get(x, y, 0) << "\n";
    } else {
      x--;
      update(x, y);
    }
  }
  return 0;
}
