#include <bits/stdc++.h>
using namespace std;
#define filename "thaotac"
mt19937_64 rd(chrono::steady_clock::now().time_since_epoch().count());
#define nl "\n"
#define sp " "
#define yes "YES"
#define no "NO"
#define impossible "IMPOSSIBLE"
#define pb push_back
#define popb pop_back
#define all(v) (v).begin(), (v).end()
#define fi first
#define se second
//-1 neu x = 0
#define bit_count(x) (__builtin_popcountll(x))
#define GCD(a,b) (__gcd((a),(b)))
#define LCM(a,b) ((a) / __gcd((a),(b)) * (b))
#define for_in_set(se) for(auto it = (se).begin(); it != (se).end(); ++it)
#define rnd(l,r) ((l) + rd() % ((r) - (l) + 1))
typedef long long ll;
const int mod = 1e9 + 7;
const int maxn = 2e5;
const int INF = 1e9 + 5;
const ll LLINF = 1e18 + 5;
int n, q, f[100005][11];
ll a[100005], grid[1001][1001], prefixsum[1001][1001], modulo_table[11][11];
void read() {
cin >> n >> q;
for (int i = 1; i<=n; ++i) cin >> a[i];
}
void sub1() {
for (int hihi = 0; hihi<q; ++hihi) {
int l, r; cin >> l >> r;
ll res = 0;
for (int i = l; i<=r; ++i) {
for (int j = l; j<=r; ++j) {
res += a[i] % a[j];
}
}
cout << res << nl;
}
}
void sub3() {
for (int i = 1; i<=n; ++i) {
for (int j = 1; j<=n; ++j) {
grid[i][j] = a[i] % a[j];
}
}
for (int i = 1; i<=n; ++i) {
for (int j = 1; j<=n; ++j) {
prefixsum[i][j] = grid[i][j] + prefixsum[i-1][j] + prefixsum[i][j-1] - prefixsum[i-1][j-1];
}
}
for (int i = 0; i<q; ++i) {
int l, r; cin >> l >> r;
int x1 = l, y1 = l, x2 = r, y2 = r;
ll res = prefixsum[r][r] + prefixsum[l-1][l-1] - prefixsum[r][l-1] - prefixsum[l-1][r];
cout << res << nl;
}
}
void sub2() {
for (int i = 1; i<=n; ++i) {
for (int j = 1; j<=10; ++j) f[i][j] = f[i-1][j];
++f[i][a[i]];
}
for (int i = 1; i<=10; ++i) {
for (int j = 1; j<=10; ++j) modulo_table[i][j] = i % j;
}
while (q--) {
int l, r; cin >> l >> r;
ll res = 0;
vector <int> freq;
freq.push_back(0);
for (int i = 1; i<=10; ++i) freq.pb(f[r][i] - f[l-1][i]);
for (int i = 1; i<=10; ++i) {
for (int j = 1; j<=10; ++j) {
res += freq[i] * freq[j] * modulo_table[i][j];
}
}
cout << res << nl;
}
}
void sub4(int maxval) {
}
void solve() {
int g = *max_element(a+1, a+n+1);
if (n <= 100 && q <= 100) sub1();
else if (n <= 5e4 && q <= 1e5 && g <= 10) sub2();
else if (n <= 1e3 && q <= 1e5 && g <= 1e5) sub3();
else sub4(g);
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
if (fopen(filename ".inp", "r")) {
freopen(filename ".inp", "r", stdin);
freopen(filename ".out", "w", stdout);
}
int t = 1;
//cin >> t;
while (t--) {
read();
solve();
cout << nl;
}
return 0;
}