#!/bin/python import sys def get_max_cnt(dp, val): max_cnt = val + 1 cnt = 2 while cnt * cnt <= val: if val % cnt == 0: tval = val/cnt max_cnt = max(max_cnt, 1 + tval * dp[cnt]) tval2 = val / tval max_cnt = max(max_cnt, 1 + tval2 * dp[tval]) cnt += 1 return max_cnt def ans_1(a): # Return the length of the longest possible sequence of moves. max_val = max(a) print max_val dp = [0] * (max_val + 1) dp[0] = 0 dp[1] = 1 dp[2] = 3 dp[3] = 4 # prime = n + 1 ''' for i in xrange(4, max_val + 1): dp[i] = get_max_cnt(dp, i) print dp ''' ret = 0 ''' for i in xrange(len(a)): ret += dp[a[i]] ''' return ret def get_cnt(val, hist): if val == 1: return 1 if hist.has_key(val): return hist[val] max_cnt = val + 1 cnt = 2 while cnt * cnt <= val: if val % cnt == 0: tval = val/cnt max_cnt = max(max_cnt, 1 + tval * get_cnt(cnt, hist)) tval2 = val / tval max_cnt = max(max_cnt, 1 + tval2 * get_cnt(tval, hist)) cnt += 1 hist[val] = max_cnt return max_cnt def longestSequence(a): hist = {} ret = 0 for val in a: ret += get_cnt(val, hist) return ret if __name__ == "__main__": n = int(raw_input().strip()) a = map(long, raw_input().strip().split(' ')) result = longestSequence(a) print result