from math import *
n=int(input())
d=[int(i) for i in input().split()]
primes=[2,3,5,7,11]
def common(d):
    res=[]
    for e in d[0]:
        cnt=res.count(e)+1
        cont=True
        for d2 in d:
            if d2.count(e)<cnt:
                cont=False
                break
        if cont:
            res.append(e)
    out=1
    for e in res:
        out*=e
    #print('common(',d,') =',out)
    return out



def gcd2(i,j):
    global d, primes
    #print('gcd2(',i,j,')')
    if i==j:
        return d[i]
    out = d[i]
    o = []

    for k in range(i,j+1):
        o2=[]
        num=d[k]
        s=num**0.5
        for p in primes:
            if p>s or p>num:
                break
            while not (num % p):
                num //= p
                o2.append(p)
        if num>1:
            o2.append(num)
        #print(d[k],'=',o2)
        o.append(o2)
    return common(o)
def f():
    global d
    res=0
    for i in range(len(d)):
        for j in range(i,len(d)):
            res+=gcd2(i,j)*max(d[i:j+1])
    return res
for i in range(13,100000,2):
    s=int(i**0.5)
    res=True
    for p in primes:
        if (p > s) or (not (i % p)):
            res=False
            break
    if res:
        primes.append(i)
print(f() % 1000000007)

