#include <bits/stdc++.h>
using namespace std;

int main()
{
    size_t N;
    cin >> N;

    vector<double> A(N);
    for (double &a : A)
    {
        cin >> a;
    }

    double l = 0.0;
    double r = 2000000000.0;
    auto f = [&](double c) -> double
    {
        double ret = 0.0;
        for (double a : A)
        {
            ret += c + a - min(a, 2 * c);
        }
        return ret;
    };
    for (size_t i = 0; i < 5000; i++)
    {
        double c1 = (l * 2.0 + r) / 3.0;
        double c2 = (l + r * 2.0) / 3.0;

        if (f(c1) < f(c2))
        {
            r = c2;
        }
        else
        {
            l = c1;
        }
    }
    cout << fixed << setprecision(12) << f(l) / double(N) << endl;
}

#include <bits/stdc++.h>

using namespace std;

const int N = 2010;

int n, a[N];
map <int, vector <int>> cand;

int main() {
  cin >> n;
  for (int i = 1; i <= n; ++i) {
    cin >> a[i];
  }
  sort(a + 1, a + n + 1);
  for (int i = 1; i <= n; ++i) {
    for (int j = 1; j * j <= a[i]; ++j) {
      if (a[i] % j) continue;
      cand[j].emplace_back(i);
      if (j * j < a[i]) cand[a[i] / j].emplace_back(i);
    }
  }
  int ans = 0;
  for (auto [key, val] : cand) {
    if (key > a[1]) break;
    int cur = 0;
    for (int i : val) cur = __gcd(cur, a[i]); 
    if (cur != key) continue; ++ans;
  }
  cout << ans << '\n';
  return 0;
}

