#!/bin/python3 def sieve_generate(n): n = int(n ** 0.5) + 1 num_list = [1] * n num_list[0] = num_list[1] = 0 for i in range(3, n, 2): for j in range(2 * i, n, i): num_list[j] = 0 s = [2] for k in range(3, n, 2): if num_list[k]: s.append(k) return s def longest_sequence(a): # Return the length of the longest possible sequence of moves. sieve = sieve_generate(max(a) + 1) for i in range(len(a)): if a[i] == 1: continue elif a[i] in sieve: a[i] += 1 else: f = [] t = a[i] for j in sieve: if j > a[i]: break while t % j == 0: f.append(j) t /= j if t > 1: f.append(int(t)) m = 1 s = 1 for j in reversed(f): m *= j s += m a[i] = s return sum(a) if __name__ == "__main__": n = int(input().strip()) a = list(map(int, input().strip().split(' '))) result = longest_sequence(a) print(result)