#include <bits/stdc++.h>
#define ll long long
#define LOG 20
#define MASK(i) (1LL<<(i))
#define BIT(x,i) (((x)>>(i))&1)
#define FIRST_BIT(mask) __builtin_ctz((mask)&(-mask))
#define ERASE_BIT(mask) (mask)^((mask)&(-mask))
#define left _left
#define right _right
#define task "t"
using namespace std;
const ll INF=1e18;
const int iat=2e5+9;
const int mod=1e9+7;
const int MAX=15e5;
void fast_IO()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
if(fopen(task".inp","r"))
{
freopen(task".inp","r",stdin);
freopen(task".out","w",stdout);
}
}
int n,q,a[iat];
ll ans[iat];
vector <int> needUpdate[iat];
struct Query
{
int l,r,d,id;
bool operator < (const Query &other) const
{
return d>other.d;
}
}query[iat];
struct Fenwick
{
ll bit[iat];
void update(int pos, int val)
{
for(int i=pos; i<=n; i+=i&-i)bit[i]+=val;
}
ll get_sum(int pos)
{
ll res=0;
for(int i=pos; i>0; i-=i&-i)res+=bit[i];
return res;
}
ll get_sum(int l, int r)
{
return get_sum(r)-get_sum(l-1);
}
}tree;
struct RMQ
{
int rmq[iat][LOG];
void preprocess()
{
for(int i=1; i<=n; i++)rmq[i][0]=a[i];
for(int j=1; j<LOG; j++)
{
for(int i=1; i+MASK(j-1)-1<=n; i++)rmq[i][j]=__gcd(rmq[i][j-1],rmq[i+MASK(j-1)][j-1]);
}
}
int get_gcd(int l, int r)
{
int k=__lg(r-l+1);
return __gcd(rmq[l][k],rmq[r-MASK(k)+1][k]);
}
}RMQ;
signed main()
{
fast_IO();
cin>>n>>q;
for(int i=1; i<=n; i++)cin>>a[i],needUpdate[1].push_back(i);
for(int i=1; i<=q; i++)cin>>query[i].l>>query[i].r>>query[i].d,query[i].id=i;
sort(query+1,query+q+1);
RMQ.preprocess();
for(int i=1; i<=q; i++)
{
for(int j : needUpdate[i])
{
int pos=j;
for(int k=LOG-1; k>=0; k--)
{
if(pos+MASK(k)<=n && RMQ.get_gcd(j,pos+MASK(k))>query[i].d)pos+=MASK(k);
}
if(RMQ.get_gcd(j,pos)>query[i].d)pos++;
if(pos<=n)
{
int tmp=RMQ.get_gcd(j,pos);
int l=i+1,r=q,res=-1;
while(l<=r)
{
int mid=(l+r)/2;
if(query[mid].d<tmp)res=mid,r=mid-1;
else l=mid+1;
}
if(res!=-1)needUpdate[res].push_back(j);
}
tree.update(j,pos-tree.get_sum(j,j));
}
int l=query[i].l,r=query[i].r,pos=-1;
while(l<=r)
{
int mid=(l+r)/2;
if(tree.get_sum(mid,mid)<=query[i].r)pos=mid,l=mid+1;
else r=mid-1;
}
if(pos!=-1)
{
l=query[i].l,r=query[i].r;
ans[query[i].id]+=1LL*(r+1)*(pos-l+1)-(tree.get_sum(l,pos));
}
}
for(int i=1; i<=q; i++)cout<<ans[i]<<'\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgTE9HIDIwCiNkZWZpbmUgTUFTSyhpKSAoMUxMPDwoaSkpCiNkZWZpbmUgQklUKHgsaSkgKCgoeCk+PihpKSkmMSkKI2RlZmluZSBGSVJTVF9CSVQobWFzaykgX19idWlsdGluX2N0eigobWFzaykmKC1tYXNrKSkKI2RlZmluZSBFUkFTRV9CSVQobWFzaykgKG1hc2spXigobWFzaykmKC1tYXNrKSkKI2RlZmluZSBsZWZ0IF9sZWZ0CiNkZWZpbmUgcmlnaHQgX3JpZ2h0CiNkZWZpbmUgdGFzayAidCIKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgbGwgSU5GPTFlMTg7CmNvbnN0IGludCBpYXQ9MmU1Kzk7CmNvbnN0IGludCBtb2Q9MWU5Kzc7CmNvbnN0IGludCBNQVg9MTVlNTsKdm9pZCBmYXN0X0lPKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKDApOwogICAgY291dC50aWUoMCk7CiAgICBpZihmb3Blbih0YXNrIi5pbnAiLCJyIikpCiAgICB7CiAgICAgICAgZnJlb3Blbih0YXNrIi5pbnAiLCJyIixzdGRpbik7CiAgICAgICAgZnJlb3Blbih0YXNrIi5vdXQiLCJ3IixzdGRvdXQpOwogICAgfQp9CmludCBuLHEsYVtpYXRdOwpsbCBhbnNbaWF0XTsKdmVjdG9yIDxpbnQ+IG5lZWRVcGRhdGVbaWF0XTsKc3RydWN0IFF1ZXJ5CnsKICAgIGludCBsLHIsZCxpZDsKICAgIGJvb2wgb3BlcmF0b3IgPCAoY29uc3QgUXVlcnkgJm90aGVyKSBjb25zdAogICAgewogICAgICAgIHJldHVybiBkPm90aGVyLmQ7CiAgICB9Cn1xdWVyeVtpYXRdOwpzdHJ1Y3QgRmVud2ljawp7CiAgICBsbCBiaXRbaWF0XTsKICAgIHZvaWQgdXBkYXRlKGludCBwb3MsIGludCB2YWwpCiAgICB7CiAgICAgICAgZm9yKGludCBpPXBvczsgaTw9bjsgaSs9aSYtaSliaXRbaV0rPXZhbDsKICAgIH0KICAgIGxsIGdldF9zdW0oaW50IHBvcykKICAgIHsKICAgICAgICBsbCByZXM9MDsKICAgICAgICBmb3IoaW50IGk9cG9zOyBpPjA7IGktPWkmLWkpcmVzKz1iaXRbaV07CiAgICAgICAgcmV0dXJuIHJlczsKICAgIH0KICAgIGxsIGdldF9zdW0oaW50IGwsIGludCByKQogICAgewogICAgICAgIHJldHVybiBnZXRfc3VtKHIpLWdldF9zdW0obC0xKTsKICAgIH0KfXRyZWU7CnN0cnVjdCBSTVEKewogICAgaW50IHJtcVtpYXRdW0xPR107CiAgICB2b2lkIHByZXByb2Nlc3MoKQogICAgewogICAgICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspcm1xW2ldWzBdPWFbaV07CiAgICAgICAgZm9yKGludCBqPTE7IGo8TE9HOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBmb3IoaW50IGk9MTsgaStNQVNLKGotMSktMTw9bjsgaSsrKXJtcVtpXVtqXT1fX2djZChybXFbaV1bai0xXSxybXFbaStNQVNLKGotMSldW2otMV0pOwogICAgICAgIH0KICAgIH0KICAgIGludCBnZXRfZ2NkKGludCBsLCBpbnQgcikKICAgIHsKICAgICAgICBpbnQgaz1fX2xnKHItbCsxKTsKICAgICAgICByZXR1cm4gX19nY2Qocm1xW2xdW2tdLHJtcVtyLU1BU0soaykrMV1ba10pOwogICAgfQp9Uk1ROwpzaWduZWQgbWFpbigpCnsKICAgIGZhc3RfSU8oKTsKICAgIGNpbj4+bj4+cTsKICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspY2luPj5hW2ldLG5lZWRVcGRhdGVbMV0ucHVzaF9iYWNrKGkpOwogICAgZm9yKGludCBpPTE7IGk8PXE7IGkrKyljaW4+PnF1ZXJ5W2ldLmw+PnF1ZXJ5W2ldLnI+PnF1ZXJ5W2ldLmQscXVlcnlbaV0uaWQ9aTsKICAgIHNvcnQocXVlcnkrMSxxdWVyeStxKzEpOwogICAgUk1RLnByZXByb2Nlc3MoKTsKICAgIGZvcihpbnQgaT0xOyBpPD1xOyBpKyspCiAgICB7CiAgICAgICAgZm9yKGludCBqIDogbmVlZFVwZGF0ZVtpXSkKICAgICAgICB7CiAgICAgICAgICAgIGludCBwb3M9ajsKICAgICAgICAgICAgZm9yKGludCBrPUxPRy0xOyBrPj0wOyBrLS0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKHBvcytNQVNLKGspPD1uICYmIFJNUS5nZXRfZ2NkKGoscG9zK01BU0soaykpPnF1ZXJ5W2ldLmQpcG9zKz1NQVNLKGspOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKFJNUS5nZXRfZ2NkKGoscG9zKT5xdWVyeVtpXS5kKXBvcysrOwogICAgICAgICAgICBpZihwb3M8PW4pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGludCB0bXA9Uk1RLmdldF9nY2Qoaixwb3MpOwogICAgICAgICAgICAgICAgaW50IGw9aSsxLHI9cSxyZXM9LTE7CiAgICAgICAgICAgICAgICB3aGlsZShsPD1yKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGludCBtaWQ9KGwrcikvMjsKICAgICAgICAgICAgICAgICAgICBpZihxdWVyeVttaWRdLmQ8dG1wKXJlcz1taWQscj1taWQtMTsKICAgICAgICAgICAgICAgICAgICBlbHNlIGw9bWlkKzE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZihyZXMhPS0xKW5lZWRVcGRhdGVbcmVzXS5wdXNoX2JhY2soaik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdHJlZS51cGRhdGUoaixwb3MtdHJlZS5nZXRfc3VtKGosaikpOwogICAgICAgIH0KICAgICAgICBpbnQgbD1xdWVyeVtpXS5sLHI9cXVlcnlbaV0ucixwb3M9LTE7CiAgICAgICAgd2hpbGUobDw9cikKICAgICAgICB7CiAgICAgICAgICAgIGludCBtaWQ9KGwrcikvMjsKICAgICAgICAgICAgaWYodHJlZS5nZXRfc3VtKG1pZCxtaWQpPD1xdWVyeVtpXS5yKXBvcz1taWQsbD1taWQrMTsKICAgICAgICAgICAgZWxzZSByPW1pZC0xOwogICAgICAgIH0KICAgICAgICBpZihwb3MhPS0xKQogICAgICAgIHsKICAgICAgICAgICAgbD1xdWVyeVtpXS5sLHI9cXVlcnlbaV0ucjsKICAgICAgICAgICAgYW5zW3F1ZXJ5W2ldLmlkXSs9MUxMKihyKzEpKihwb3MtbCsxKS0odHJlZS5nZXRfc3VtKGwscG9zKSk7CiAgICAgICAgfQogICAgfQogICAgZm9yKGludCBpPTE7IGk8PXE7IGkrKyljb3V0PDxhbnNbaV08PCdcbic7Cn0=