func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 110000;   const int B = 60;   int n, q, mc;   int aint[4 * N][B];   void update(int nod, int pozx, int pozy, int poz, int val) {     int i;     if (pozx == pozy) {       for (i = 0; i < B; ++i) {         aint[nod][i] = 1;         if (i % val == 0) aint[nod][i]++;       }       return;     }     int mid = (pozx + pozy) / 2;     if (mid >= poz)       update(2 * nod, pozx, mid, poz, val);     else       update(2 * nod + 1, mid + 1, pozy, poz, val);     for (i = 0; i < B; ++i)       aint[nod][i] =           aint[2 * nod][i] + aint[2 * nod + 1][(i + aint[2 * nod][i]) % B];   }   int query(int nod, int pozx, int pozy, int poz1, int poz2) {     if (poz1 <= pozx && pozy <= poz2) {       int rez = aint[nod][mc];       mc = (mc + aint[nod][mc]) % B;       return rez;     }     int mid = (pozx + pozy) / 2, rez = 0;     if (mid >= poz1) rez = query(2 * nod, pozx, mid, poz1, poz2);     if (mid < poz2) rez += query(2 * nod + 1, mid + 1, pozy, poz1, poz2);     return rez;   }   int main() {     int i;     cin >> n;     for (i = 1; i <= n; ++i) {       int x;       cin >> x;       update(1, 1, n, i, x);     }     cin >> q;     for (i = 1; i <= q; ++i) {       char a;       int p1, p2;       cin >> a >> p1 >> p2;       if (a ==  A ) {         mc = 0;         cout << query(1, 1, n, p1, p2 - 1) <<   n ;       } else         update(1, 1, n, p1, p2);     }     return 0;   }   