#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;

int main() {
	int N;
	set<int> A;
	cin >> N;
	for(int i = 0; i < N; i++){
		int a;
		cin >> a;
		A.insert(a);
	}

	while(A.size() > 1){
		int x = *A.begin();
		int X = *A.rbegin();
		A.erase(X);
		A.insert(X-x);
	}

	cout << *A.begin() << endl;
	return(0);
}


#include <vector>
#include <iostream>
#include <algorithm>

using namespace std;
  
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int n;
  cin >> n;
  vector<int> A(n), G(1001);
  for (int i = 0; i < n; i++) {
    cin >> A[i];
  }
  int ans = -1, best = 0;
  for(int i = 0; i < n; i++) {
    for(int j = 0; j < n; j++) {
      G[__gcd(A[i], A[j])]++;
    }
    int x = max_element(G.begin() + 2, G.end()) - G.begin();
    if (G[x] > best) best = G[x], ans = x;
    fill(G.begin(), G.end(), 0);
  }
  cout << ans << '\n';
  return 0;
}
