from math import * dp = {} sv = [] def primeFactorsGivenPrimes(n, primes): factors = {} for p in primes: while n % p == 0: n //= p factors[p] = factors.get(p,0)+1 if n < p*p: if n > 1: factors[n] = factors.get(n,0)+1 return factors return factors def allFactors(n,pms): pfs = primeFactorsGivenPrimes(n,pms) ans = [] def too(p,q): a = [] x=p for i in range(q): a.append(x) x*=p return a for p in pfs: if not ans: ans = too(p,pfs[p]) else: ns = too(p,pfs[p]) temp = [i*n for i in ans for n in ns] ans.extend(temp+ns) return ans def func(v): global dp,sv if v==1: return 1 if v==2: return 3 if v in dp:return dp[v] p = 0 for i in allFactors(v,sv): p = max(p,i*func(v//i)) dp[v]=max(p+1,v+1) return dp[v] def longestSequence(a): return sum(map(func,a)) def sieve(n): """THE BEST VERSION""" sieve = [True] * int(n/2) for i in range(3,int(n**0.5)+1,2): if sieve[int(i/2)]: sieve[int(i*i/2)::i] = [False] * int((n-i*i-1)/(2*i)+1) return [2] + [2*i+1 for i in range(1,int(n/2)) if sieve[i]] if __name__ == "__main__": n = int(input().strip()) sv = sieve(1000004) a = list(map(int, input().strip().split(' '))) result = longestSequence(a) print(result)