import bisect
import copy
import decimal
import fractions
import heapq
import itertools
import math
import random
import sys
import time
from collections import Counter, deque, defaultdict
from functools import lru_cache, reduce
from heapq import heappush, heappop, heapify, heappushpop, _heappop_max, _heapify_max


def _heappush_max(heap, item):
    heap.append(item)
    heapq._siftdown_max(heap, 0, len(heap) - 1)


def _heappushpop_max(heap, item):
    if heap and item < heap[0]:
        item, heap[0] = heap[0], item
        heapq._siftup_max(heap, 0)
    return item


from math import gcd as GCD

read = sys.stdin.read
readline = sys.stdin.readline
readlines = sys.stdin.readlines
write = sys.stdout.write

N = int(readline())
A = list(map(int, readline().split()))
g = 0
for i in range(N - 1):
    g = GCD(g, A[i + 1] - A[i])
ans = A[0] % g + A[-1] - A[0]
print(ans)
