#include <iostream>
using namespace std;
#include<vector>
#include<map>
#include<cmath>
int main() {

    int n,q;
    cin>>n>>q;
    vector<map<int,int>> v(n+1);
    vector<long long> arr(n+1);
    vector<long long> allct(n+1);
    for(int i=1;i<=n;i++)
    {
        int x;
        cin>>x;
        v[i]=v[i-1];
        int ct=0;
        for(int j=1;j<=sqrt(x);j++)
        {
            if(x%j==0)
            {    ct++;
            if(x/j>j)
            ct++;
            }
        }
        //cout<<ct<<endl;
        arr[i]=arr[i-1];
        int cc=v[i][ct];
        if(cc>=1)
        arr[i]=arr[i]+v[i][ct];
        v[i][ct]++;
        allct[i]=ct;
        //cout<<arr[i]<<endl;
        
    }

    while(q--)
    {
        int a,b;
        cin>>a>>b;
        long long result=arr[b]-arr[a-1];
        for(auto i:v[a-1])
        {
            long long ansb=v[b][i.first];
            result-=i.second*(ansb-i.second);
        }
        cout<<result<<endl;
    }

}
// 64 位输出请用 printf("%lld")