#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e15;
const int maxn = 5000 + 5;
long long cnt[maxn + 10];
long long p[maxn + 10][maxn + 10];
long long pd[maxn + 10];
int main() {
  memset(cnt, 0, sizeof(cnt));
  int n;
  scanf("%d", &n);
  for (int i = (1); i <= (n); i++) {
    int u;
    scanf("%d", &u);
    cnt[u]++;
  }
  for (int i = (2); i <= (maxn); i++) {
    for (int j = (1); j <= (i); j++) p[i][j] += p[i - 1][j];
    int mm = sqrt(i), tem = i;
    for (int j = (2); j <= (mm); j++) {
      while (tem % j == 0) {
        p[i][j]++;
        tem /= j;
      }
    }
    if (tem > 1) p[i][tem]++;
  }
  long long ans = 0, cur = 0;
  for (int i = (1); i <= (maxn); i++) {
    if (!cnt[i]) {
      pd[i] = 1;
      continue;
    }
    for (int j = (1); j <= (i); j++) {
      ans += p[i][j] * cnt[i];
      cur += p[i][j] * cnt[i];
      if (p[i][j]) pd[i] = j;
    }
  }
  while (*max_element(pd, pd + maxn + 10) > 1) {
    long long f[maxn + 10];
    memset(f, 0, sizeof(f));
    for (int i = (1); i <= (maxn); i++) f[pd[i]] += cnt[i];
    long long besp = max_element(f, f + maxn + 10) - f;
    long long besg = f[besp];
    if (besg * 2 <= n || besp == 1) break;
    cur += n - 2 * besg;
    ans = min(ans, cur);
    for (int i = (1); i <= (maxn); i++) {
      if (pd[i] != besp) pd[i] = 1;
      if (pd[i] == 1) continue;
      p[i][besp] -= 1;
      while (pd[i] > 1 && p[i][pd[i]] == 0) pd[i]--;
    }
  }
  printf("%I64d\n", ans);
  return 0;
}
