import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.StringTokenizer;

public class Main {
    static class pair implements Comparable<pair> {
        int x;
        int y;

        public pair(int xx, int yy) {
            x = xx;
            y = yy;
        }

        @Override
        public int compareTo(pair o) {
            return o.x-x;
        }
    }
    static long gcd(long a,long b){
        if(b==0)
            return a;
        return gcd(b,a%b);
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        PrintWriter out = new PrintWriter(System.out);
        StringTokenizer st ;
        int n=Integer.parseInt(br.readLine());
        st=new StringTokenizer(br.readLine());
        long[]aa=new long[n];
        long max=-1;
        for (int i = 0; i <n ; i++) {
            aa[i]=Long.parseLong(st.nextToken());
            max=Math.max(max,aa[i]);
        }
        long diff=0;
        long g=max-aa[0];
        for (int i = 0; i <n ; i++) {
            if(aa[i]!=max)
            g=gcd(g,max-aa[i]);
            //System.err.println(g);
            diff+=max-aa[i];
        }
        out.println(diff/g+" "+g);
        out.flush();

    }

}