# 그리디 알고리즘
# 마지막 행성에서는 그 행성의 속도와 같은 값이면 된다. (최소값을 구해야 하기 때문에.)
# 현재의 속도가 i 행성의 속도보다 작으면 현재 속도를 i 행성 속도로 재 할당 -> 정방향으로 한다면 속도를 떨어뜨린 것과 같다.
# 현재의 속도가 i 행성의 속도보다 크면? 2가지 경우... 양의 정수 배로 재 할당해야 한다. -> 2가지 경우로 나뉜다.
# -> 1. 현재 속도가 i 행성에 도달하기 위한 속도의 양의 배수라면? 그대로,
# -> 2. i행성의 속도의 양의 배수가 아니면, 현재 속도값보다 크게 하면서, i 행성속도의 양의 배수로 만들기
N = int(input())
speed = list(map(int, input().split()))
present = speed[-1]
# 역방향 탐색
for i in range(N-2, -1, -1):
if speed[i] > present: # 행성속도가 현재속도보다 크다면?
present = speed[i] # 현재속도를 행성속도로 재할당
else: # 행성속도가 현재속도보다 작다면?
if present % speed[i]: # 양의 정수배가 되지 않는다면 아래 코드블록을 실행
present = (present//speed[i]+1) * speed[i] # 현재 속도를 정수배이면서, 최소값으로 재할당.
print(present)