#include <bits/stdc++.h>
using namespace std;
int n, vet[555], best, M = 32600, a, b = 1e9;
vector<int> testa;
char jav[202020200];
inline void add(int v) {
  if (v < 202020200 && jav[v]) return;
  if (v > a || !v) return;
  if (v < 202020200) jav[v] = 1;
  testa.push_back(v);
}
int main() {
  scanf("%d", &n);
  for (int(i) = (0); (i) < (n); (i)++)
    scanf("%d", vet + i), a = max(a, vet[i]), b = min(b, vet[i]);
  sort(vet, vet + n);
  for (int(i) = (1); (i) < (M); (i)++) add(i);
  for (int(j) = (0); (j) < (n); (j)++)
    for (int(i) = (1); (i) < (M); (i)++) add(vet[j] / i), add(vet[j] / i - 1);
  for (int(i) = (((int)(testa).size()) - 1); (i) >= (0); (i)--)
    if (testa[i] > best) {
      int v = testa[i];
      char ok = 1;
      for (int(j) = (0); (j) < (n); (j)++)
        if (v * (vet[j] / (v + 1) + !!(vet[j] % (v + 1))) > vet[j]) {
          ok = 0;
          break;
        }
      if (ok) best = v;
    }
  long long ans = 0;
  for (int(i) = (0); (i) < (n); (i)++)
    ans += vet[i] / (best + 1) + !!(vet[i] % (best + 1));
  printf("%lld\n", ans);
}
