import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { static int inf = (int) Math.pow(10,6)+10; static boolean p [] = new boolean [inf]; static long ps[] = new long[inf]; static int pn = 0; static long memo[] = new long[inf]; static void cal(){ for(int i = 1; i < inf; i++){ p[i] = true; } for(int i = 2; i*i 0){ sum += cala(a[i]); } } return sum; } static long cala(long a){ if(a < (long) inf){ if(memo[(int) a] != 0){ return memo[(int)a]; } } int k = 0; boolean t = false; long sr = (long) Math.sqrt(a); //System.out.println(a + " "+ sr); //System.out.println(ps[k] + " "+ sr + " "+ p[2]); while(k < pn && ps[k] <= sr){ //System.out.println(ps[k] + " "+ a); if(a%ps[k] == 0){ t = true; break; }else{ k++; } } long ret = 0; if(t){ ret = a + cala(a/ps[k]); // System.out.println(a + " "+ ret); if(a < (long) inf){ memo[(int)a] = ret; } }else{ ret = a+1; } return ret; } 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(); } }