#include <iostream>
#include <map>

int main() {
    // Broj elemenata u nizu, a[i] niz elemenata
    int n, a[100010];

    // arrayCnt[i] predstavlja broj koliko se puta pojavio element i u nizu a,
    // prvi element je inicijalizovan sa nulom, a u c++ kada se navede
    // vrijednost jednog elementa ostali elementi u nizu su jednaki nuli
    int arrayCnt[100010] = { 0 };

    // Unosi se broj elemenata
    std::cin >> n;

    for (int i = 0; i < n; ++i) {
        // Unosi se svaki element
        std::cin >> a[i];

        // Inkrementuje se broj pojavljivanja elementa a[i] za jedan
        ++arrayCnt[a[i]];
    }

    // Predstavlja indeks elementa sa maksimalnim brojem djelilaca koji se 
    // nalaze u nizu
    int maxIndex = 0;
    // Predstavlja vrijednost elementa sa maksimalnim brojem djelilaca koji
    // se nalaze u nizu
    int max = 0;
    for (int i = 0; i < n; ++i) {
        // Broj djelilaca elementa a[i] koji se nalazi u nizu
        int cnt = 0;

        // Prolazi se kroz sve djelioce broja a[i]
        for (int j = 1; j*j <= a[i]; ++j) {
            // Ako j ne dijeli a[i] nastavlja se dalja iteracija u potrazi
            // za djeliocima broja a[i]
            if (a[i] % j != 0) continue;

            // Moguce je da postoje duplikati istog broja, u oba slucaja
            // se brojac dekrementuje za 1 ako je djelilac jednak a[i]
            if (j*j == a[i]) {
                // Ako je j korijen broja a[i] djelilac se racuna samo jednom
                int num = j;
                cnt += arrayCnt[num];
                if (num == a[i]) --cnt;
            } else {
                // U suprotnom se racunaju oba djelioca
                int num1 = a[i] / j;
                int num2 = j;
                cnt += arrayCnt[num1];
                cnt += arrayCnt[num2];
                if (num1 == a[i]) --cnt;
                if (num2 == a[i]) --cnt;
            }
        }

        // Ako je rezultujuci broj za a[i] veci od maksimalnog broja djelilaca
        // sacuva se taj broj i indeks na kojem se pojavljuje
        if (cnt > max) {
            max = cnt;
            maxIndex = i;
        }
    }

    // Ispisuje se rezultat sa najvecim broj djelilaca iz niza
    std::cout << a[maxIndex];
}