#include <bits/stdc++.h>
using namespace std;
//
const int mxn = 1e5 + 5;
const int mod = 1e9 + 7;
//
int n, A[mxn];
int ans, st[20][mxn];
//
inline void add (int &a, int b)
{
a += b;
if (a >= mod)
a -= mod;
}
//
void build (void)
{
for (int i = 1; i <= n; ++i)
st[0][i] = A[i];
for (int j = 1; (1 << j) <= n; ++j)
for (int i = 1; i + (1 << j) - 1 <= n; ++i)
st[j][i] = __gcd(st[j - 1][i], st[j - 1][i + (1 << j - 1)]);
}
int get (int l, int r)
{
int k = __lg(r - l + 1);
//
return __gcd(st[k][l], st[k][r - (1 << k) + 1]);
}
//
int bin_chop (int i, int v)
{
int l = i, r = n, mid, res;
//
while (l <= r)
{
mid = l + r >> 1;
if (get(i, mid) >= v)
l = mid + 1,
res = mid;
else
r = mid - 1;
}
return res;
}
//
void process (void)
{
cin >> n;
for (int i = 1; i <= n; ++i)
cin >> A[i];
build();
for (int i = 1; i <= n; ++i)
for (int k, v = A[i], j = i - 1; j < n; j = k, v = get(i, k + 1))
k = bin_chop(i, v),
add(ans, 1LL * (k - j) * v % mod);
cout << ans;
}
//
signed main (void)
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr), cout.tie(nullptr);
process();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci8vCmNvbnN0IGludCBteG4gPSAxZTUgKyA1Owpjb25zdCBpbnQgbW9kID0gMWU5ICsgNzsKLy8KaW50IG4sIEFbbXhuXTsKaW50IGFucywgc3RbMjBdW214bl07Ci8vCmlubGluZSB2b2lkIGFkZCAoaW50ICZhLCBpbnQgYikKewogICAgYSArPSBiOwogICAgaWYgKGEgPj0gbW9kKQogICAgICAgIGEgLT0gbW9kOwp9Ci8vCnZvaWQgYnVpbGQgKHZvaWQpCnsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkKICAgICAgICBzdFswXVtpXSA9IEFbaV07CiAgICBmb3IgKGludCBqID0gMTsgKDEgPDwgaikgPD0gbjsgKytqKQogICAgICAgIGZvciAoaW50IGkgPSAxOyBpICsgKDEgPDwgaikgLSAxIDw9IG47ICsraSkKICAgICAgICAgICAgc3Rbal1baV0gPSBfX2djZChzdFtqIC0gMV1baV0sIHN0W2ogLSAxXVtpICsgKDEgPDwgaiAtIDEpXSk7Cn0KaW50IGdldCAoaW50IGwsIGludCByKQp7CiAgICBpbnQgayA9IF9fbGcociAtIGwgKyAxKTsKICAgIC8vCiAgICByZXR1cm4gX19nY2Qoc3Rba11bbF0sIHN0W2tdW3IgLSAoMSA8PCBrKSArIDFdKTsKfQovLwppbnQgYmluX2Nob3AgKGludCBpLCBpbnQgdikKewogICAgaW50IGwgPSBpLCByID0gbiwgbWlkLCByZXM7CiAgICAvLwogICAgd2hpbGUgKGwgPD0gcikKICAgIHsKICAgICAgICBtaWQgPSBsICsgciA+PiAxOwogICAgICAgIGlmIChnZXQoaSwgbWlkKSA+PSB2KQogICAgICAgICAgICBsID0gbWlkICsgMSwKICAgICAgICAgICAgcmVzID0gbWlkOwogICAgICAgIGVsc2UKICAgICAgICAgICAgciA9IG1pZCAtIDE7CiAgICB9CiAgICByZXR1cm4gcmVzOwp9Ci8vCnZvaWQgcHJvY2VzcyAodm9pZCkKewogICAgY2luID4+IG47CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpCiAgICAgICAgY2luID4+IEFbaV07CgogICAgYnVpbGQoKTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkKICAgICAgICBmb3IgKGludCBrLCB2ID0gQVtpXSwgaiA9IGkgLSAxOyBqIDwgbjsgaiA9IGssIHYgPSBnZXQoaSwgayArIDEpKQogICAgICAgICAgICBrID0gYmluX2Nob3AoaSwgdiksCiAgICAgICAgICAgIGFkZChhbnMsIDFMTCAqIChrIC0gaikgKiB2ICUgbW9kKTsKCiAgICBjb3V0IDw8IGFuczsKfQovLwpzaWduZWQgbWFpbiAodm9pZCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpLCBjb3V0LnRpZShudWxscHRyKTsKICAgIHByb2Nlc3MoKTsKfQ==