//パラメータ値の最大公約数を求める式
function gcd(a, b) {
    if (b === 0){
        return a
    }
    return gcd(b, a % b)
}
//主処理
function Main(input){
  input = input.split("\n");
  inputStr = input[0].split(" ");
  var N = Number.parseInt(inputStr[0]);
  var A = input[1].split(" ");
　var i = 1;
  var min = Number.parseInt(A[0]);
  var modsum1 = Number.parseInt(A[0]);
  //最大公約数を求める
  for (i=1; i<N ; i++){
    modsum1 = gcd(modsum1, Number.parseInt(A[i]));
    if (min > Number.parseInt(A[i])) {
      min = Number.parseInt(A[i]);
    }
  }
  var modsum2 = 0;  
  var modsum3 = 0;
  var i2 = 0;
  //特定の1文字を加えないで最大公約数を求め、その最大を記録する
  for (i=0; i<N ; i++){
    //console.log('-');
	for ( i2 = 0; i2 <N ; i2++) {
      if ( i === i2 ) {
      } else {
        if (modsum2 === 0){
          modsum2 = Number.parseInt(A[i2]);
        }
		modsum2 = gcd(modsum2, Number.parseInt(A[i2]));
        //console.log(modsum2);
      }
    }
    modsum3 = Math.max(modsum2,modsum3);
    modsum2 = 0;
  }
  //console.log("------");
  console.log(Math.max(modsum1,modsum3));
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));