store = {1:1} def isPrime(n): if n < 2: return False for i in range(2, int(n ** 0.5) + 1): if n % i == 0: return False return True def longest(n): maxVal = n + 1 for i in range(2, int(n ** 0.5) + 1): value = 0 if n % i == 0: divisor = n // i if divisor in store: value = store[divisor] else: value = longest(divisor) maxVal = max(maxVal, 1 + i * value) a = divisor divisor = i if divisor in store: value = store[divisor] else: value = longest(divisor) maxVal = max(maxVal, 1 + a * value) store[n] = maxVal return maxVal n = int(input().strip()) arr = list(map(int,input().strip().split())) total = 0 for i in arr: if i in store: total += store[i] elif isPrime(i): store[i] = i + 1 total += i + 1 else: total += longest(i) print(total)