from math import sqrt from math import floor from bisect import bisect_left # sqrt(1000000000) = 31622 def eratosthenes2(n): multiples = set() for i in range(2, n+1): if i not in multiples: yield i multiples.update(range(i*i, n+1, i)) return multiples __primes = list(eratosthenes2(31622)) def is_prime(n): # if prime is already in the list, just pick it if n <= 31622: i = bisect_left(__primes, n) return i != len(__primes) and __primes[i] == n # Divide by each known prime limit = int(n ** .5) for p in __primes: if p > limit: return True if n % p == 0: return False # fall back on trial division if n > 1 billion for f in range(31627, limit, 6): # 31627 is the next prime if n % f == 0 or n % (f + 4) == 0: return False return True def smallestDivisor(n): if n % 2 == 0: return 2 else: squareRootOfn = int(floor(sqrt(n))) for i in range(3, squareRootOfn+1, 2): #print("i", i) if n % i == 0: return i #return n #print(smallestDivisor(3196624531), is_prime(3196624531), floor(sqrt(3196624531))) #print(factors(21)) def find_moves(num): if num == 1: return 1 if is_prime(num): return num + 1 total = 0 while num != 1 and not is_prime(num): # print(num,total) total += num num //= smallestDivisor(num) #print(num, total) return total + 1 + num def longestSequence(a): su = 0 for item in a: #print(find_moves(item)) su += find_moves(item) return su if __name__ == "__main__": n = int(input().strip()) a = list(map(int, input().strip().split(' '))) result = longestSequence(a) print(result)