/*
* Author: Geeza
*/
#include <bits/stdc++.h>
#define ld long double
#define ll long long
#define pb push_back
#define fin(a, n) for(int i = a; i < n; i++)
#define fjn(a, n) for(int j = a; j < n; j++)
#define all(a) a.begin(),a.end()
#define allr(a) a.rbegin(),a.rend()
#define FAST ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
using namespace std;
const double PI = acos(-1);
const int N = 2e5+5;
const ll oo = 0x3f3f3f3f3f3f3f3f;
const int mod = 1000000007, inf = 1e6;
string di[] = {"D","L", "U", "R", "UL", "UR", "DL", "DR"};
int dx[] = {+1, +0, +0, -1, -1, -1, +1, +1};
int dy[] = {+0, -1, +1, +0, -1, +1, -1, +1};
char dc[] = {'D', 'L', 'R', 'U'};
struct node {
ll cnt;
node():cnt(0) {}
node(ll x): cnt(x) {}
void add(ll x) {
cnt += x;
}
};
struct segTree {
ll treeSize;
vector<node> tree;
segTree(ll n) {
treeSize = 1;
while (treeSize < n) treeSize <<= 1;
tree.resize(2 * treeSize, node());
}
node merge(node l, node r) {
node parent = node();
parent.cnt = l.cnt + r.cnt;
return parent;
}
void update(ll idx, ll val, ll i, ll l, ll r) {
if (r - l == 1) {
tree[i].add(val);
return;
}
ll mid = (l+r)/2;
if (idx < mid) update(idx, val, 2*i+1, l, mid);
else update(idx, val, 2*i+2, mid, r);
tree[i] = merge(tree[2*i+1], tree[2*i+2]);
}
void update(ll idx, ll val) {
update(idx, val, 0, 0, treeSize);
}
node query(ll l, ll r, ll n, ll lx, ll rx) {
if (lx >= r || rx <= l) return node();
if (lx >= l && rx <= r) return tree[n];
ll mid = lx + (rx - lx) / 2;
node lf = query(l, r, 2*n+1, lx, mid);
node ri = query(l, r, 2*n+2, mid, rx);
return merge(lf, ri);
}
ll query(ll l, ll r) {
return query(l, r, 0, 0, treeSize).cnt;
}
};
ll n, q;
vector<ll> divs;
void precompute() {
divs.assign(N, 0);
for (ll i = 1; i <= n; i++) {
for (ll j = i; j <= n; j+=i) divs[j]++;
}
}
void solve() {
vector<ll> v(n);
fin(0, n) cin >> v[i];
vector<array<ll, 3>> queries(q);
fin(0, q) {
cin >> queries[i][0] >> queries[i][1];
queries[i][0]--, queries[i][1]--, queries[i][2] = i;
}
sort(all(queries), [&](array<ll ,3> &a, array<ll, 3> &b) {
if (a[1] == b[1]) return a[0] < b[0];
return a[1] < b[1];
});
// for (auto [x, y] : queries) cout << x << " " << y << "\n";
segTree st(n);
vector<ll> ans(q);
vector<bool> added(n, false);
for (auto vec : queries) {
ll l = vec[0], r = vec[1], idx = vec[2];
for (int x = l; x <= r; x++) {
if (added[x]) continue;
st.update(x, divs[v[x]]);
added[x] = true;
}
ans[idx] = st.query(l, r+1);
}
for (auto x : ans) cout << x << "\n";
}
int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
int tt = 1; //cin >> tt;
while(tt--){
cin >> n >> q;
precompute();
solve();
}
return 0;
}
LyoKKiBBdXRob3I6IEdlZXphCiovCgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBmaW4oYSwgbikgZm9yKGludCBpID0gYTsgaSA8IG47IGkrKykKI2RlZmluZSBmam4oYSwgbikgZm9yKGludCBqID0gYTsgaiA8IG47IGorKykKI2RlZmluZSBhbGwoYSkgYS5iZWdpbigpLGEuZW5kKCkKI2RlZmluZSBhbGxyKGEpIGEucmJlZ2luKCksYS5yZW5kKCkKI2RlZmluZSBGQVNUIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpLCBjaW4udGllKG51bGxwdHIpLCBjb3V0LnRpZShudWxscHRyKQoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGRvdWJsZSBQSSA9IGFjb3MoLTEpOwpjb25zdCBpbnQgTiA9IDJlNSs1Owpjb25zdCBsbCBvbyA9IDB4M2YzZjNmM2YzZjNmM2YzZjsKY29uc3QgaW50IG1vZCA9IDEwMDAwMDAwMDcsIGluZiA9IDFlNjsKCnN0cmluZyBkaVtdID0geyJEIiwiTCIsICJVIiwgIlIiLCAiVUwiLCAiVVIiLCAiREwiLCAiRFIifTsKaW50IGR4W10gPSB7KzEsICswLCArMCwgLTEsIC0xLCAtMSwgKzEsICsxfTsKaW50IGR5W10gPSB7KzAsIC0xLCArMSwgKzAsIC0xLCArMSwgLTEsICsxfTsKY2hhciBkY1tdID0geydEJywgJ0wnLCAnUicsICdVJ307CgpzdHJ1Y3Qgbm9kZSB7CiAgICBsbCBjbnQ7CiAgICBub2RlKCk6Y250KDApIHt9CiAgICBub2RlKGxsIHgpOiBjbnQoeCkge30KICAgIHZvaWQgYWRkKGxsIHgpIHsKICAgICAgICBjbnQgKz0geDsKICAgIH0KfTsKCnN0cnVjdCBzZWdUcmVlIHsKICAgIGxsIHRyZWVTaXplOwogICAgdmVjdG9yPG5vZGU+IHRyZWU7CgogICAgc2VnVHJlZShsbCBuKSB7CiAgICAgICAgdHJlZVNpemUgPSAxOwogICAgICAgIHdoaWxlICh0cmVlU2l6ZSA8IG4pIHRyZWVTaXplIDw8PSAxOwogICAgICAgIHRyZWUucmVzaXplKDIgKiB0cmVlU2l6ZSwgbm9kZSgpKTsKICAgIH0KCiAgICBub2RlIG1lcmdlKG5vZGUgbCwgbm9kZSByKSB7CiAgICAgICAgbm9kZSBwYXJlbnQgPSBub2RlKCk7CiAgICAgICAgcGFyZW50LmNudCA9IGwuY250ICsgci5jbnQ7CiAgICAgICAgcmV0dXJuIHBhcmVudDsKICAgIH0KCiAgICB2b2lkIHVwZGF0ZShsbCBpZHgsIGxsIHZhbCwgbGwgaSwgbGwgbCwgbGwgcikgewogICAgICAgIGlmIChyIC0gbCA9PSAxKSB7CiAgICAgICAgICAgIHRyZWVbaV0uYWRkKHZhbCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGxsIG1pZCA9IChsK3IpLzI7CiAgICAgICAgaWYgKGlkeCA8IG1pZCkgdXBkYXRlKGlkeCwgdmFsLCAyKmkrMSwgbCwgbWlkKTsKICAgICAgICBlbHNlIHVwZGF0ZShpZHgsIHZhbCwgMippKzIsIG1pZCwgcik7CiAgICAgICAgdHJlZVtpXSA9IG1lcmdlKHRyZWVbMippKzFdLCB0cmVlWzIqaSsyXSk7CiAgICB9CgogICAgdm9pZCB1cGRhdGUobGwgaWR4LCBsbCB2YWwpIHsKICAgICAgICB1cGRhdGUoaWR4LCB2YWwsIDAsIDAsIHRyZWVTaXplKTsKICAgIH0KCiAgICBub2RlIHF1ZXJ5KGxsIGwsIGxsIHIsIGxsIG4sIGxsIGx4LCBsbCByeCkgewogICAgICAgIGlmIChseCA+PSByIHx8IHJ4IDw9IGwpIHJldHVybiBub2RlKCk7CiAgICAgICAgaWYgKGx4ID49IGwgJiYgcnggPD0gcikgcmV0dXJuIHRyZWVbbl07CgogICAgICAgIGxsIG1pZCA9IGx4ICsgKHJ4IC0gbHgpIC8gMjsKICAgICAgICBub2RlIGxmID0gcXVlcnkobCwgciwgMipuKzEsIGx4LCBtaWQpOwogICAgICAgIG5vZGUgcmkgPSBxdWVyeShsLCByLCAyKm4rMiwgbWlkLCByeCk7CiAgICAgICAgcmV0dXJuIG1lcmdlKGxmLCByaSk7CiAgICB9CgogICAgbGwgcXVlcnkobGwgbCwgbGwgcikgewogICAgICAgIHJldHVybiBxdWVyeShsLCByLCAwLCAwLCB0cmVlU2l6ZSkuY250OwogICAgfQp9OwoKbGwgbiwgcTsKdmVjdG9yPGxsPiBkaXZzOwoKdm9pZCBwcmVjb21wdXRlKCkgewogICAgZGl2cy5hc3NpZ24oTiwgMCk7CiAgICBmb3IgKGxsIGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIGZvciAobGwgaiA9IGk7IGogPD0gbjsgais9aSkgZGl2c1tqXSsrOwogICAgfQp9Cgp2b2lkIHNvbHZlKCkgewogICAgdmVjdG9yPGxsPiB2KG4pOwogICAgZmluKDAsIG4pIGNpbiA+PiB2W2ldOwoKICAgIHZlY3RvcjxhcnJheTxsbCwgMz4+IHF1ZXJpZXMocSk7CiAgICBmaW4oMCwgcSkgewogICAgICAgIGNpbiA+PiBxdWVyaWVzW2ldWzBdID4+IHF1ZXJpZXNbaV1bMV07CiAgICAgICAgcXVlcmllc1tpXVswXS0tLCBxdWVyaWVzW2ldWzFdLS0sIHF1ZXJpZXNbaV1bMl0gPSBpOwogICAgfQoKICAgIHNvcnQoYWxsKHF1ZXJpZXMpLCBbJl0oYXJyYXk8bGwgLDM+ICZhLCBhcnJheTxsbCwgMz4gJmIpIHsKICAgICAgICBpZiAoYVsxXSA9PSBiWzFdKSByZXR1cm4gYVswXSA8IGJbMF07CiAgICAgICAgcmV0dXJuIGFbMV0gPCBiWzFdOwogICAgfSk7CgogICAgLy8gZm9yIChhdXRvIFt4LCB5XSA6IHF1ZXJpZXMpIGNvdXQgPDwgeCA8PCAiICIgPDwgeSA8PCAiXG4iOwogICAgc2VnVHJlZSBzdChuKTsKICAgIHZlY3RvcjxsbD4gYW5zKHEpOwogICAgdmVjdG9yPGJvb2w+IGFkZGVkKG4sIGZhbHNlKTsKICAgIGZvciAoYXV0byB2ZWMgOiBxdWVyaWVzKSB7CiAgICAgICAgbGwgbCA9IHZlY1swXSwgciA9IHZlY1sxXSwgaWR4ID0gdmVjWzJdOwogICAgICAgIGZvciAoaW50IHggPSBsOyB4IDw9IHI7IHgrKykgewogICAgICAgICAgICBpZiAoYWRkZWRbeF0pIGNvbnRpbnVlOwogICAgICAgICAgICBzdC51cGRhdGUoeCwgZGl2c1t2W3hdXSk7CiAgICAgICAgICAgIGFkZGVkW3hdID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgYW5zW2lkeF0gPSBzdC5xdWVyeShsLCByKzEpOwogICAgfQoKICAgIGZvciAoYXV0byB4IDogYW5zKSBjb3V0IDw8IHggPDwgIlxuIjsKfQoKaW50IG1haW4oKSB7CiNpZm5kZWYgT05MSU5FX0pVREdFCiAgICBmcmVvcGVuKCJpbnB1dC50eHQiLCJyIixzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwidyIsc3Rkb3V0KTsKI2VuZGlmCiAgICBpbnQgdHQgPSAxOyAvL2NpbiA+PiB0dDsKICAgIHdoaWxlKHR0LS0pewogICAgICAgIGNpbiA+PiBuID4+IHE7CiAgICAgICAgcHJlY29tcHV0ZSgpOwogICAgICAgIHNvbHZlKCk7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==