import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { public static long largestPrimeFactor(long number) { for (long i = 2L; i <= number / i; ) { if (number % i == 0) { number /= i; } else { i++; } } return number; } static long longestSequence(long[] array) { long[] results = new long[array.length]; for (int i = 0; i < array.length; i++) { long a = array[i]; long moves = eatOrBreak(1, a); //System.out.printf("--%s = > %s\n", a, moves); results[i] = moves; } return Arrays.stream(results).sum(); } private static long eatOrBreak(long pieces, long length) { // eating if (length == 1) { return pieces * length; } long divider = largestPrimeFactor(length); // divide return pieces + eatOrBreak(pieces * divider, length / divider); } public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); long[] a = new long[n]; for(int a_i = 0; a_i < n; a_i++){ a[a_i] = in.nextLong(); } long result = longestSequence(a); System.out.println(result); in.close(); } }