#!/bin/python3 import sys, math from functools import reduce scores = {} ##def getSplits(n, divisors): ## return reduce(list.__add__, ## ([([i]*(n//i)),([n//i]*i)] for i in divisors if i>1)) def getDivisors(n): return set(reduce(list.__add__, ([i] for i in range(1, int(n**0.5) + 1) if n % i == 0))) def scoreSequence(n): if (n == 1): return 1 if (n in scores): return scores[n] else: divisors = getDivisors(n) if (len(divisors) == 1): scores[n] = n+1 #print(n,scores[n]) return n+1 else: ## splits = getSplits(n, divisors) maxscore = 0 for d in divisors: if (d == 1): continue div = n//d if (d in scores): s = scores[d]*(div) if (s > maxscore): maxscore = s else: s = scoreSequence(d)*(div) if (s > maxscore): maxscore = s if (div in scores): s = scores[div]*(d) if (s > maxscore): maxscore = s else: s = scoreSequence(div)*(d) if (s > maxscore): maxscore = s score = 1 + maxscore #print(n,score) scores[n] = score return score def longestSequence(a): return sum([scoreSequence(x) for x in a]) def main(): n = int(input().strip()) a = list(map(int, input().strip().split(' '))) result = longestSequence(a) print(result) if __name__ == "__main__": main()