#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();
}