#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef vector<ll> vll;
#define FOR(i, a) for (int i=0; i<(a); i++)
#define all(x) x.begin(), x.end()
#define gcd __gcd
#define pll pair<ll, ll>
#define pii pair<int, int>
#define fi first
#define se second
//const int dr[4] = {-1, 0, 1, 0}, dc[4] = {0, 1, 0, -1};
const int N = 2e5 + 5, LOG = 18;
int n, q;
int st[N][LOG], lg[N]; // sparse table
int f[N]; // f() and fenwick
ll fen[N];
vi have[N]; // precompute all possible gcd value
int get_gcd(int l, int r){
int k = lg[r - l + 1];
return gcd(st[l][k], st[r - (1 << k) + 1][k]);
}
void build_st(){
lg[1] = 0;
for(int i = 2; i <= n; ++i)
lg[i] = lg[i / 2] + 1;
for(int j = 1; j < LOG; ++j)
for(int i = 1; i + (1 << j) - 1 <= n; ++i)
st[i][j] = gcd(st[i][j - 1], st[i + (1 << (j - 1))][j - 1]);
}
inline void upd_fen(int id, int val){
for(; id <= n; id += id & -id)
fen[id] += val;
}
inline ll get(int id){
ll ans = 0;
for(; id > 0; id -= id & -id)
ans += fen[id];
return ans;
}
inline ll sum(int l, int r){
return get(r) - get(l - 1);
}
void upd(int id, int val){
upd_fen(id, val - f[id]);
f[id] = val;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n >> q;
for(int i = 1; i <= n; ++i)
cin >> st[i][0];
build_st();
vector<array<int, 4>> query(q);
vll ans(n);
FOR(i, q){
int l, r, d; cin >> l >> r >> d;
query[i] = {d, l, r, i};
}
sort(all(query));
vector<pii> possible;
for(int i = 1; i <= n; ++i){
have[i].push_back(0);
int pos = i;
while(pos <= n){
have[i].push_back(pos);
int cur = get_gcd(i, pos);
possible.emplace_back(cur, i);
int lo = pos, hi = n;
while(lo <= hi){
int mid = (lo + hi) / 2;
if(get_gcd(i, mid) == cur){
pos = mid;
lo = mid + 1;
}
else hi = mid - 1;
}
pos++;
}
}
sort(all(possible)); reverse(all(possible));
for(int i = 1; i <= n; ++i)
upd(i, have[i].back());
for(auto &it : query){
int d = it[0], l = it[1], r = it[2], id = it[3];
while(possible.size()){
auto it = possible.back();
int val = it.fi, id = it.se;
if(val > d) break;
upd(id, have[id].back());
possible.pop_back();
have[id].pop_back();
}
int lo = l, hi = r, pos = -1;
while(lo <= hi){
int mid = (lo + hi) / 2;
if(get_gcd(mid, f[mid]) <= d){
pos = mid;
lo = mid + 1;
}
else hi = mid - 1;
}
if(pos == -1) continue;
int actual_r = pos;
lo = l, hi = actual_r, pos = -1;
while(lo <= hi){
int mid = (lo + hi) / 2;
if(f[mid] <= r){
pos = mid;
lo = mid + 1;
}
else hi = mid - 1;
}
if(pos != -1)
ans[id] = (r + 1) * 1LL * (pos - l + 1) - sum(l, pos);
}
FOR(i, q) cout << ans[i] << "\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwp0eXBlZGVmIHZlY3RvcjxpbnQ+IHZpOwp0eXBlZGVmIHZlY3RvcjxsbD4gdmxsOwojZGVmaW5lIEZPUihpLCBhKSBmb3IgKGludCBpPTA7IGk8KGEpOyBpKyspCiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSwgeC5lbmQoKQojZGVmaW5lIGdjZCBfX2djZAojZGVmaW5lIHBsbCBwYWlyPGxsLCBsbD4KI2RlZmluZSBwaWkgcGFpcjxpbnQsIGludD4KI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAovL2NvbnN0IGludCBkcls0XSA9IHstMSwgMCwgMSwgMH0sIGRjWzRdID0gezAsIDEsIDAsIC0xfTsKCmNvbnN0IGludCBOID0gMmU1ICsgNSwgTE9HID0gMTg7CmludCBuLCBxOwppbnQgc3RbTl1bTE9HXSwgbGdbTl07ICAvLyBzcGFyc2UgdGFibGUKCmludCBmW05dOyAgICAgICAgICAgICAgIC8vIGYoKSBhbmQgZmVud2ljawpsbCBmZW5bTl07Cgp2aSBoYXZlW05dOyAvLyBwcmVjb21wdXRlIGFsbCBwb3NzaWJsZSBnY2QgdmFsdWUKCmludCBnZXRfZ2NkKGludCBsLCBpbnQgcil7CiAgICBpbnQgayA9IGxnW3IgLSBsICsgMV07CiAgICByZXR1cm4gZ2NkKHN0W2xdW2tdLCBzdFtyIC0gKDEgPDwgaykgKyAxXVtrXSk7Cn0KCnZvaWQgYnVpbGRfc3QoKXsKICAgIGxnWzFdID0gMDsKICAgIGZvcihpbnQgaSA9IDI7IGkgPD0gbjsgKytpKQogICAgICAgIGxnW2ldID0gbGdbaSAvIDJdICsgMTsKCiAgICBmb3IoaW50IGogPSAxOyBqIDwgTE9HOyArK2opCiAgICAgICAgZm9yKGludCBpID0gMTsgaSArICgxIDw8IGopIC0gMSA8PSBuOyArK2kpCiAgICAgICAgICAgIHN0W2ldW2pdID0gZ2NkKHN0W2ldW2ogLSAxXSwgc3RbaSArICgxIDw8IChqIC0gMSkpXVtqIC0gMV0pOwp9CgppbmxpbmUgdm9pZCB1cGRfZmVuKGludCBpZCwgaW50IHZhbCl7CiAgICBmb3IoOyBpZCA8PSBuOyBpZCArPSBpZCAmIC1pZCkKICAgICAgICBmZW5baWRdICs9IHZhbDsKfQoKaW5saW5lIGxsIGdldChpbnQgaWQpewogICAgbGwgYW5zID0gMDsKICAgIGZvcig7IGlkID4gMDsgaWQgLT0gaWQgJiAtaWQpCiAgICAgICAgYW5zICs9IGZlbltpZF07CiAgICByZXR1cm4gYW5zOwp9CgppbmxpbmUgbGwgc3VtKGludCBsLCBpbnQgcil7CiAgICByZXR1cm4gZ2V0KHIpIC0gZ2V0KGwgLSAxKTsKfQoKdm9pZCB1cGQoaW50IGlkLCBpbnQgdmFsKXsKICAgIHVwZF9mZW4oaWQsIHZhbCAtIGZbaWRdKTsKICAgIGZbaWRdID0gdmFsOwp9CgppbnQgbWFpbigpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7CiAgICBjaW4gPj4gbiA+PiBxOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyArK2kpCiAgICAgICAgY2luID4+IHN0W2ldWzBdOwoKICAgIGJ1aWxkX3N0KCk7CgogICAgdmVjdG9yPGFycmF5PGludCwgND4+IHF1ZXJ5KHEpOwogICAgdmxsIGFucyhuKTsKCiAgICBGT1IoaSwgcSl7CiAgICAgICAgaW50IGwsIHIsIGQ7IGNpbiA+PiBsID4+IHIgPj4gZDsKICAgICAgICBxdWVyeVtpXSA9IHtkLCBsLCByLCBpfTsKICAgIH0KCiAgICBzb3J0KGFsbChxdWVyeSkpOwoKICAgIHZlY3RvcjxwaWk+IHBvc3NpYmxlOwoKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgKytpKXsKICAgICAgICBoYXZlW2ldLnB1c2hfYmFjaygwKTsKICAgICAgICBpbnQgcG9zID0gaTsKICAgICAgICB3aGlsZShwb3MgPD0gbil7CiAgICAgICAgICAgIGhhdmVbaV0ucHVzaF9iYWNrKHBvcyk7CiAgICAgICAgICAgIGludCBjdXIgPSBnZXRfZ2NkKGksIHBvcyk7CiAgICAgICAgICAgIHBvc3NpYmxlLmVtcGxhY2VfYmFjayhjdXIsIGkpOwogICAgICAgICAgICBpbnQgbG8gPSBwb3MsIGhpID0gbjsKICAgICAgICAgICAgd2hpbGUobG8gPD0gaGkpewogICAgICAgICAgICAgICAgaW50IG1pZCA9IChsbyArIGhpKSAvIDI7CiAgICAgICAgICAgICAgICBpZihnZXRfZ2NkKGksIG1pZCkgPT0gY3VyKXsKICAgICAgICAgICAgICAgICAgICBwb3MgPSBtaWQ7CiAgICAgICAgICAgICAgICAgICAgbG8gPSBtaWQgKyAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBoaSA9IG1pZCAtIDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcG9zKys7CiAgICAgICAgfQogICAgfQoKICAgIHNvcnQoYWxsKHBvc3NpYmxlKSk7IHJldmVyc2UoYWxsKHBvc3NpYmxlKSk7CgogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyArK2kpCiAgICAgICAgdXBkKGksIGhhdmVbaV0uYmFjaygpKTsKCiAgICBmb3IoYXV0byAmaXQgOiBxdWVyeSl7CiAgICAgICAgaW50IGQgPSBpdFswXSwgbCA9IGl0WzFdLCByID0gaXRbMl0sIGlkID0gaXRbM107CgogICAgICAgIHdoaWxlKHBvc3NpYmxlLnNpemUoKSl7CiAgICAgICAgICAgIGF1dG8gaXQgPSBwb3NzaWJsZS5iYWNrKCk7CiAgICAgICAgICAgIGludCB2YWwgPSBpdC5maSwgaWQgPSBpdC5zZTsKICAgICAgICAgICAgaWYodmFsID4gZCkgYnJlYWs7CiAgICAgICAgICAgIHVwZChpZCwgaGF2ZVtpZF0uYmFjaygpKTsKICAgICAgICAgICAgcG9zc2libGUucG9wX2JhY2soKTsKICAgICAgICAgICAgaGF2ZVtpZF0ucG9wX2JhY2soKTsKICAgICAgICB9CgogICAgICAgIGludCBsbyA9IGwsIGhpID0gciwgcG9zID0gLTE7CiAgICAgICAgd2hpbGUobG8gPD0gaGkpewogICAgICAgICAgICBpbnQgbWlkID0gKGxvICsgaGkpIC8gMjsKICAgICAgICAgICAgaWYoZ2V0X2djZChtaWQsIGZbbWlkXSkgPD0gZCl7CiAgICAgICAgICAgICAgICBwb3MgPSBtaWQ7CiAgICAgICAgICAgICAgICBsbyA9IG1pZCArIDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBoaSA9IG1pZCAtIDE7CiAgICAgICAgfQoKICAgICAgICBpZihwb3MgPT0gLTEpIGNvbnRpbnVlOwogICAgICAgIGludCBhY3R1YWxfciA9IHBvczsKCiAgICAgICAgbG8gPSBsLCBoaSA9IGFjdHVhbF9yLCBwb3MgPSAtMTsKICAgICAgICB3aGlsZShsbyA8PSBoaSl7CiAgICAgICAgICAgIGludCBtaWQgPSAobG8gKyBoaSkgLyAyOwogICAgICAgICAgICBpZihmW21pZF0gPD0gcil7CiAgICAgICAgICAgICAgICBwb3MgPSBtaWQ7CiAgICAgICAgICAgICAgICBsbyA9IG1pZCArIDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBoaSA9IG1pZCAtIDE7CiAgICAgICAgfQoKICAgICAgICBpZihwb3MgIT0gLTEpCiAgICAgICAgICAgIGFuc1tpZF0gPSAociArIDEpICogMUxMICogKHBvcyAtIGwgKyAxKSAtIHN1bShsLCBwb3MpOwogICAgfQoKICAgIEZPUihpLCBxKSBjb3V0IDw8IGFuc1tpXSA8PCAiXG4iOwoKICAgIHJldHVybiAwOwp9