#include <algorithm>
#include <cassert>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <unordered_map>
#include <set>
#include <stack>
#include <string>
#include <vector>
#include <queue>

using namespace std;

#define TRACE(x) cerr << #x << " " << x << endl
#define FOR(i, a, b) for (int i = (a); i < int(b); ++i)
#define REP(i, n) FOR(i, 0, n)
#define _ << " " <<

#define fst first
#define snd second

typedef long long llint;
typedef pair<int, int> pii;

const int B = 27397, MOD = 1e9 + 7;
const int B1 = 33941, MOD1 = 1e9 + 9;

int n;

unordered_map <llint, llint> memo;

llint dp(llint x) {
  if (memo.find(x) != memo.end())
    return memo[x];
  if (x == 1) return 1;
  llint ret = 0;
  for (int i = 2; (llint) i * i <= x; ++i) {
    if (x % i != 0) continue;
    return memo[x] = x + dp(x/i);
  }
  return memo[x] = x + 1;
}

int main(void) {
  scanf("%d", &n);

  llint sol = 0;
  for (int i = 0; i < n; ++i) {
    llint a;
    scanf("%lld", &a);
    sol += dp(a);
  }

  printf("%lld\n", sol);
  return 0;
}