import java.io.*; import java.util.*; import java.math.*; public class Solution { private static PrintWriter out; public static void main(String[] args) throws Exception { out = new PrintWriter(System.out); new Solution().solve(); out.close(); } private BufferedReader reader; private StringTokenizer st; private long SQRTMAXN = (long)1e6; private int n; private long[] primes = new long[(int)SQRTMAXN]; private boolean[] isNotPrime = new boolean[(int)SQRTMAXN + 1]; private int primesCnt = 0; private long[] factorization = new long[(int)SQRTMAXN]; private int factSize = 0; private void solve() throws Exception { for (int i = 2; i <= SQRTMAXN; ++i) { if (isNotPrime[i]) { continue; } primes[primesCnt++] = i; for (int j = 2 * i; j <= SQRTMAXN; j += i) { isNotPrime[j] = true; } } reader = new BufferedReader(new InputStreamReader(System.in)); n = Integer.parseInt(reader.readLine()); st = new StringTokenizer(reader.readLine()); long res = 0L; for (int i = 0; i < n; ++i) { long v = Long.parseLong(st.nextToken()); factSize = 0; for (int j = 0; j < primesCnt; ++j) { while (v % primes[j] == 0) { factorization[factSize++] = primes[j]; v /= primes[j]; } } if (v > 1) { factorization[factSize++] = v; } long mul = 1L; for (int j = 0; j < factSize; ++j) { mul *= factorization[factSize - 1 - j]; res += mul; } res++; } out.println(res); reader.close(); } }