import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { static long longestSequence(long[] a, int n) { HashMap seen = new HashMap(); long total = 0; for(int i = 0; i < n; i++){ total+= getMoves(a[i], seen); } return total; } static long getMoves(long v, HashMap seen){ if(seen.containsKey(v)) return seen.get(v); if(v == 1) return 1; long next = getSmallestPrime(v); long total = v + getMoves(v/next,seen); seen.put(v,total); return total; } static long getSmallestPrime(long v){ if(v % 2 == 0) return 2; for(long i = 3; i*i <= v; i+=2){ if(v % i == 0){ return i; } } return v; } 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,n); System.out.println(result); in.close(); } }