#include <bits/stdc++.h>
using i64 = long long;
i64 gcd(i64 a, i64 b) {
  if (b > a) std::swap(a, b);
  return a % b ? gcd(b, a % b) : b;
}
int main() {
  i64 n;
  const i64 mod = 998244353;
  std::cin >> n;
  std::vector<i64> a(n);
  for (int i = 0; i < n; i++) {
    std::cin >> a[i];
  }
  std::sort(a.begin(), a.end());
  if (n == 1) {
    std::cout << a[0] % mod << std::endl;
    return 0;
  }
  i64 g = a[1], f = 1;
  for (int i = 2; i < n; i++) g = gcd(g, a[i]);
  for (i64 i = 2; i < n; i++) f = f * i % g;
  if (f) g = gcd(g, f) % mod;
  std::cout << a[0] * g % mod << std::endl;
  return 0;
}
