'use strict'

function gcd(a,b){
    //console.log('gcd:',a,b);
    if(b===0){
        return a;
    }
    return gcd(b,a%b)
}

function Main(input) {
    let temp = input.trim().split('\n');
    let n = parseInt(temp[0]);
    let a = temp[1].split(' ').map((v)=>(parseInt(v)));

    a.sort((a,b)=>a-b);
    let x = gcd(a[1],a[0]);
    let ans = new Set([a[0],a[1]]);

    for(let i=2;i<n;i++){
        //console.log('start------',ans);
        let s = new Set();
        if(1<x){
            s.add(x);
            x = gcd(x,a[i]);
        }
        
        for(let j of ans){
            let y = gcd(j,a[i]);
            if(1<y) s.add(y);
        }
        ans = s;
        //console.log(ans);
    }
    let max = 1;
    for(let j of ans) if(max < j) max = j;
    console.log(max);

}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
