

import java.util.Arrays;
import java.util.Scanner;

public class Main {

	public static void main(String args[]) {
		Scanner input = new Scanner(System.in);
		int n = input.nextInt();
		long a[] = new long[n + 1];
		for (int i = 1; i <= n; i++) {
			a[i] = input.nextLong();
		}
		Arrays.sort(a, 1, n + 1);
		long min = Long.MAX_VALUE;
		long answer = 0;
		int index = -1;
		for (int i = 2; i <= n; i++) {
			if (a[i] != a[i - 1]) {
				index = i;
				min = a[i] - a[i - 1];
				break;
			}
			answer += a[n] - a[i - 1];
		}
		for (int i = index; i <= n; i++) {
			answer += a[n] - a[i - 1];
			if (a[i] != a[i - 1]) {
				min = gcd(min, a[i] - a[i - 1]);
			}
		}

		// System.out.println(answer);
		answer /= min;
		System.out.println(answer + " " + min);
	}

	public static long gcd(long a, long b) {
		if (b == 0)
			return a;
		else
			return gcd(b, a % b);
	}
}