#include <bits/stdc++.h>
using namespace std;
long long n, a[200001], f[200001], j;
int main() {
  scanf("%I64d", &n);
  for (long long i = n; i; i--)
    scanf("%I64d", &a[i]), a[i] = i < n ? min(a[i], a[i + 1]) : a[i];
  a[0] = 1;
  for (long long i = 1; i <= n; i++)
    for (long long k = a[i], l = 0; k; k %= a[j]) {
      j = lower_bound(a + 1, a + n + 1, k) - a - 1;
      f[i] = max(f[i], f[j] + (n - j) * (k / a[j] - 1) * a[j] + l);
      l += (n - j) * (k / a[j]) * a[j];
    }
  printf("%I64d\n", f[n]);
  return 0;
}
