#include <bits/stdc++.h>

using namespace std;
using lld = long long int;

lld A[1000];
vector<lld> primes;
const lld kapa = 1100000;
lld K[10000];
lld m;

void Sieve();

int main()
{
    Sieve();
    lld n;
    lld ans = 0;
    scanf("%lld", &n);
    for(int i = 0; i < n; i++)
        scanf("%lld", &A[i]);
    for(int i = 0; i < n; i++)
    {
        lld napa = A[i];
        m = 0;
        for(vector<lld>::iterator j = primes.begin(); j != primes.end(); j++)
        {
            while(napa % *j == 0)
            {
                K[m++] = *j;
                napa /= *j;
            }
        }
        if(napa != 1)
            K[m++] = napa;
        napa = 1;
        lld zeta = 1;
        for(int j = m - 1; j >= 0; j--)
        {
            zeta *= K[j];
            napa += zeta;
        }
        ans += napa;
    }
    printf("%lld\n", ans);
    return 0;
}

void Sieve()
{
    bool A[kapa];
    memset(A, true, sizeof(A));
    A[0] = A[1] = false;
    for(int i = 2; i * i <= kapa; i++)
    {
        if(A[i])
        {
            for(int j = 2 * i; j < kapa; j += i)
                A[j] = false;
        }
    }
    for(int i = 0; i < kapa; i++)
        if(A[i])
            primes.push_back(i);
}