#include<stdio.h>
long long a[100005] = { 0 };
int int_cmp(const void* p1, const void* p2)
{
return *((int*)p1) - *((int*)p2);
}
int main()
{
int N = 0;
scanf("%d", &N);
int i = 0;
for (i = 1; i <= N; i++)
{
scanf("%lld", &a[i]);
}
qsort(a, N, sizeof(a[0]), int_cmp);
long long d = a[2]-a[1];
long long counts = 0;
if (d == 0)
counts = N;
else
{
int flag = 1;
while (flag)
{
long long t = d;
for (i = 1; i <= N; i++)
{
if ((a[i] - a[1]) % d != 0)
d--;
}
if (t == d)
flag = 0;
}
counts = ((a[N] - a[1]) / d)+1;
}
printf("%lld\n", counts);
return 0;
}