#!/bin/python3 import sys import math from functools import lru_cache sys.setrecursionlimit(999999999) @lru_cache(maxsize=None) def longestForOne(val): if val == 1: return 1 result = val + 1 all_factors = primes(val) all_factors.sort(reverse=True) if len(all_factors): result = max(result, 1 + all_factors[0] * longestForOne(int(val/all_factors[0]))) return result def longestSequence(a): return sum(map(longestForOne, a)) # Return the length of the longest possible sequence of moves. def divisorGeneratorEx2(n): large_divisors = [] for i in range(2, int(math.sqrt(n) + 1)): if n % i == 0: yield i if i*i != n: large_divisors.append(n / i) for divisor in reversed(large_divisors): yield divisor def primes(n): primfac = [] d = 2 while d*d <= n: while (n % d) == 0: primfac.append(d) # supposing you want multiple factors repeated n //= d d += 1 if n > 1: primfac.append(n) return primfac if __name__ == "__main__": n = int(input().strip()) a = list(map(int, input().strip().split(' '))) result = longestSequence(a) print(int(result))