#include<iostream>
#include<cmath>
using namespace std;
const int maxn = 1e5+5;
int dat[maxn];
int sum[350][maxn];
int n,q;
void blocked()
{
int sz=sqrt(n);
for(int i=0;i<n;++i)
{
for(int j=1;j*j<=dat[i];++j)
{
if(dat[i]%j==0)
{
sum[i/sz][j]++;
if(dat[i]/j!=j) sum[i/sz][dat[i]/j]++;
}
}
}
}
int query(int l,int r,int x)
{
int sz=sqrt(n);
int ans=0;
for(int i=l;i<=r&&l/sz==i/sz;++i)
{
if(dat[i]%x==0) ans++;
}
if(l/sz==r/sz)
{
return ans;
}
for(int i=r;i>=l&&i/sz==r/sz;--i)
{
if(dat[i]%x==0) ans++;
}
for(int i=l/sz+1;i<=r/sz-1;++i)
{
ans+=sum[i][x];
}
return ans;
}
int main()
{
cin>>n>>q;
for(int i=0;i<n;++i)
{
cin>>dat[i];
}
blocked();
int l,r,x;
for(int i=1;i<=q;++i)
{
cin>>l>>r>>x;
l--;
r--;
cout<<query(l,r,x)<<endl;
}
return 0;
}