#include <bits/stdc++.h>
using namespace std;
long long pow(long long a, long long b, long long p) {
  long long sum = 1;
  for (a %= p; b; a = a * a % p, b >>= 1)
    if (b & 1) sum = sum * a % p;
  return sum;
}
long long phi(long long n) {
  long long i, re = n;
  for (i = 2; i * i <= n; i++)
    if (n % i == 0) {
      re = re / i * (i - 1);
      while (n % i == 0) n /= i;
    }
  if (n > 1) re = re / n * (n - 1);
  return re % 1000000007;
}
void exgcd(long long a, long long b, long long &x, long long &y) {
  if (!b) {
    x = 1;
    y = 0;
    return;
  }
  exgcd(b, a % b, y, x);
  y -= x * (a / b);
}
long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
int gg[2000100];
int main() {
  int n;
  scanf("%d", &n);
  int da = 0, x;
  for (int i = 0; i < n; i++) {
    scanf("%d", &x);
    gg[x] = x;
    if (da < x) da = x;
  }
  for (int i = 1; i < 2 * da; i++) {
    if (gg[i] == 0) gg[i] = gg[i - 1];
  }
  int ma = 0;
  for (int i = da - 1; i > ma; i--) {
    if (gg[i] == i) {
      for (int j = 2 * i - 1; j < 2 * da; j += i)
        if (ma < (gg[j] % i)) ma = gg[j] % i;
    }
  }
  printf("%d\n", ma);
}
