#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b) {
  if (b == 0)
    return a;
  else {
    return gcd(b, a % b);
  }
}
int main() {
  multiset<long long> s;
  multiset<long long>::iterator it;
  long long n, arr[100000], i, ache = 0, Max = -1, z, churi1, churi2, chilo,
                               haraise, a, y;
  cin >> n;
  for (i = 0; i < n; i++) {
    cin >> a;
    s.insert(a);
    if (a > Max) Max = a;
    ache += a;
  }
  chilo = n * Max;
  it = s.begin();
  churi1 = Max - *it;
  for (it = s.begin(); it != s.end(); it++) {
    churi1 = gcd(churi1, Max - (*it));
  }
  haraise = chilo - ache;
  y = haraise / churi1;
  cout << y << " " << churi1 << endl;
}
