#!/bin/python3

import sys
from itertools import compress
from functools import lru_cache

def primes(n):
    """ Returns  a list of primes < n for n > 2 """
    sieve = bytearray([True]) * (n//2)
    for i in range(3,int(n**0.5)+1,2):
        if sieve[i//2]:
            sieve[i*i//2::i] = bytearray((n-i*i-1)//(2*i)+1)
    return [2,*compress(range(3,n,2), sieve[1:])]

primeslist = primes(10**6+1)

def factorization(n):
    """ Returns a list of the prime factorization of n """
    pf = []
    for p in primeslist:
      if p*p > n : break
      count = 0
      while not n % p:
        n //= p
        count += 1
      if count > 0: pf.append((p, count))
    if n > 1: pf.append((n, 1))
    return pf

def divisors(n):
    """ Returns an unsorted list of the divisors of n """
    divs = [1]
    for p, e in factorization(n):
        divs += [x*p**k for k in range(1,e+1) for x in divs]
    return divs

@lru_cache(maxsize=None)
def f(a):
    if a == 1:
        return 1
    i = 0
    m = 0
    for d in divisors(a):
        if d == 1: continue
        m = max(m, 1 + d * f(a//d))
    return m

def longestSequence(a):
    #  Return the length of the longest possible sequence of moves.
    return sum(f(x) for x in a)

if __name__ == "__main__":
    n = int(input().strip())
    a = list(map(int, input().strip().split(' ')))
    result = longestSequence(a)
    print(result)