# Enter your code here. Read input from STDIN. Print output to STDOUT import sys import math def gcd(a, b): if b == 0: return a else: return gcd(b, a % b) def findSmallFactor(n): if n == 1: return 1 elif n == 2: return 1 elif n % 2 == 0: return 2 else: s = int(math.sqrt(n)) if s % 2 == 0: d = s - 1 else: d = s r = gcd(n, d) while r == 1 and d > 1: d = d -2 r = gcd(n, d) return r factor_cache = {1: []} def factorise(n, factorisations=factor_cache): if n in factorisations.keys(): return factorisations[n] d = findSmallFactor(n) if d == 1: # n is prime result = [(n, 1)] else: k = 1 q = n/d while q % d == 0: q = q/d k = k + 1 dfac = factorise(d) qfac = factorise(q) result = mergeFactors(map(lambda (p, e): (p, k * e), dfac), qfac) factorisations[n] = result return result def mergeFactors(primeFac1, primeFac2): primeFac1.sort() primeFac2.sort() if primeFac1 == []: return primeFac2 elif primeFac2 == []: return primeFac1 i = 0 j = 0 pf1 = primeFac1[i] pf2 = primeFac2[j] if pf2 < pf1: cur = pf2 j = j + 1 else: cur = pf1 i = i + 1 result = [] while i < len(primeFac1) and j < len(primeFac2): (pc, ec) = cur (p1, e1) = primeFac1[i] (p2, e2) = primeFac2[j] if pc == p1: cur = (pc, ec + e1) i = i + 1 elif pc == p2: cur = (pc, ec + e2) j = j + 1 elif p1 < p2: result.append(cur) cur = (p1, e1) i = i + 1 else: result.append(cur) cur = (p2, e2) j = j + 1 result.append(cur) if i == len(primeFac1): result.extend(primeFac2[j:]) else: result.extend(primeFac1[i:]) return result def maxMoves(length): factors = factorise(length) result = 1 for (p, e) in factors: m = p**e result = (m - 1)/(p-1) + m * result return result def longestSequence(arr): return sum(maxMoves(l) for l in arr) if __name__ == "__main__": n = int(raw_input().strip()) a = map(long, raw_input().strip().split(' ')) result = longestSequence(a) print result