#include <bits/stdc++.h>
using namespace std;
int gcd(int big, int small) {
  if (big % small == 0)
    return small;
  else
    return gcd(small, big % small);
}
int main() {
  int n;
  cin >> n;
  vector<int> a(n);
  for (int i = 0; i < n; ++i) {
    cin >> a[i];
  }
  sort(a.begin(), a.end());
  int can = a[1] - a[0];
  for (int i = 2; i < n && can != 1; ++i) {
    if (can > 0 && a[i] - a[i - 1] > 0)
      can = gcd(can, a[i] - a[i - 1]);
    else if (can == 0 && a[i] - a[i - 1] != 0)
      can = a[i] - a[i - 1];
  }
  long long ans = 0;
  for (int i = 0; i < n - 1; ++i) {
    ans += (a[n - 1] - a[i]) / can;
  }
  cout << ans << " " << can << endl;
  return 0;
}
