#!/bin/python import sys import math from sets import Set tree_depth_map = {} tree_depth_map[0] = 0 tree_depth_map[1] = 1 #tree_depth_map[2] = 3 #tree_depth_map[4] = 7 def longestSequence(a): # Return the length of the longest possible sequence of moves. sum_nodes = 0 for n in a: sum_nodes += get_best_factors(n) return sum_nodes def factorize(n): if n == 1: return [(1,1)] elif n == 2: return [(2,1)] factors = [] for i in range(2, (n/2)+1): if n % i == 0: factors.append((i, n / i)) return factors def get_from_factorize_map(n): if n in tree_depth_map.keys(): return tree_depth_map[n] else: return -1 def get_best_factors(n): for i in range(2, n+1): if i % 2 == 1: tree_depth_map[i] = i + 1 continue factors = factorize(i) greatest_depth = 0 factor = (-1, -1) for f in factors: depth = (f[0] * get_from_factorize_map(f[1])) + 1 if depth > greatest_depth: greatest_depth = depth factor = f if greatest_depth > 0: tree_depth_map[i] = greatest_depth return get_from_factorize_map(n) if __name__ == "__main__": n = int(raw_input().strip()) a = map(long, raw_input().strip().split(' ')) result = longestSequence(a) print result