import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { static List primes = new ArrayList<>(); static { primes.add(2L); primes.add(3L); } static class PrimeIterator { int primeIndex = 0; long nextPrime() { if (primeIndex < primes.size()) { return primes.get(primeIndex++); } long maxPrime = primes.get(primes.size() - 1); for (long nextPrimeCand = maxPrime + 2; ; nextPrimeCand += 2) { if (isPrime(nextPrimeCand)) { primes.add(nextPrimeCand); primeIndex++; return nextPrimeCand; } } } private boolean isPrime(long nextPrimeCand) { int primeIndex = 0; while (primeIndex < primes.size() && primes.get(primeIndex) <= Math.sqrt(nextPrimeCand)) { if (nextPrimeCand % primes.get(primeIndex) == 0) { return false; } primeIndex++; } return true; } } static long getLowestPrimeFactor(long number, PrimeIterator primeIterator) { long prime = primeIterator.nextPrime(); while (prime <= Math.sqrt(number)) { if (number % prime == 0) { return prime; } prime = primeIterator.nextPrime(); } return number; // means it is prime } static Map mem = new HashMap<>(); static long getMaxMoves(long num) { if (num == 1) { return 1; } if (mem.containsKey(num)) { return mem.get(num); } long maxMoves = num + 1; PrimeIterator primeIterator = new PrimeIterator(); long nReduced = num; while (nReduced > 1) { long primeFactor = getLowestPrimeFactor(nReduced, primeIterator); //System.out.println("prime factor for " + num + " is " + primeFactor); maxMoves = Math.max(maxMoves, getMaxMoves(num / primeFactor) * primeFactor + 1); while (nReduced % primeFactor == 0) { nReduced = nReduced / primeFactor; } } mem.put(num, maxMoves); return maxMoves; } static long longestSequence(long[] a) { long sum = 0; for (long l : a) { sum += getMaxMoves(l); } return sum; } 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(); } }