def gcd(x, y): 
  
   while(y): 
       x, y = y, x % y 
  
   return x 

n=int(input())
no=list(map(int,input().split()))
m=max(no)
for i in range(n):
    no[i]=m-no[i]
arr=[x for x in no if x!=0]
g=[]
if len(arr)-1>0:
    for i in range(len(arr)-1):
        g.append(gcd(arr[i],arr[i+1]))
    m=min(g)
    for i in range(len(arr)):
        arr[i]//=m
    b=sum(arr)
else:
     m=arr[0]
     b=1
print(b,m)