#!/bin/python import sys def sieve(n): np = n + 1 s = range(np) s[1] = 0 sqrt = int(round(n**0.5)) for i in xrange(2, sqrt+1): if s[i]: s[i*i:np:i] = [0] * len(xrange(i*i, np, i)) return filter(None, s) def get_factors(n, primes): if n in primes: return [n] factors = [] while (n > 1): start = 0 for i in range(start, len(primes)): start = primes[i] if (n % primes[i] == 0): factors.append(primes[i]) n = n / primes[i] break return factors def longestSequence(a, primes): # Return the length of the longest possible sequence of moves. big = 0 savex = [] savet = [] for x in a: if x in savex: big += savet[savex.index(x)] else: factors = sorted(get_factors(x, primes), reverse=True) tot = 1 prev = 1 for i in factors: prev *= i tot += prev big += tot savex.append(x) savet.append(tot) return big if __name__ == "__main__": n = int(raw_input().strip()) a = map(long, raw_input().strip().split(' ')) primes = sieve(max(a)) result = longestSequence(a, primes) print result