#!/bin/python3 import sys import math def find_factors(n): factors = list() for i in range(2, int(math.sqrt(n) + 2)): if n % i == 0: factors.append((i, int(n/i))) return factors def isprime(n): for i in range(2, int(math.sqrt(n))+1): if n % i == 0: return False return True def longestSequence(a): # Return the length of the longest possible sequence of moves. total_moves = 0 for seqlen in a: temp = calc_moves(seqlen) total_moves += temp return int(total_moves) def calc_moves(seqlen): cache = {1:1} temp = helper(seqlen, cache) #for k,v in cache.items(): # print(k, ' : ', v) return temp def helper(slen, cache): if slen in cache: return cache[slen] if isprime(slen): if slen not in cache: cache[slen] = slen + 1 return cache[slen] factors = find_factors(slen) cache[slen] = 0 moves = 0 for factpair in factors: part1, part2 = factpair if part2 in cache: moves = part1 * cache[part2] + 1 else: moves = part1 * helper(part2, cache) + 1 if cache[slen] < moves: cache[slen] = moves return cache[slen] if __name__ == "__main__": n = int(input().strip()) a = list(map(int, input().strip().split(' '))) result = longestSequence(a) print(result)