#include using namespace std; const long long LINF = 1e18; #define rep(i, n) for (int i = 0; i < (n); ++i) #define rep2(i, l, r) for (int i = (l); i < (r); ++i) #define rrep(i, n) for (int i = (n) - 1; i >= 0; --i) template inline bool chmin(A& a, const B& b) { if (a > b) { a = b; return true; } return false; } int clz(int x) { int ret = 0; rrep(i, 30) { if (1 & (x >> i)) break; ret++; } return ret; } int gcd(int x, int y) { if (x < y) swap(x, y); if (y == 0) return x; int z = y; while (clz(x) != clz(z)) z <<= 1; return gcd(y, x ^ z); } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; long long sum = 0; vector cnt(100005); int g = 0; rep(i, n) { int a; cin >> a; g = gcd(g, a); cnt[a]++; sum += a; } vector memo(100001); long long ans = LINF; rep2(i, 1, 100001) { memo[i] = sum; for (int j = i; j < 100001; j += i) { memo[i] -= 1LL * cnt[j] * j; memo[i] += 1LL * cnt[j] * (j / i); } } rep2(i, 1, 1 << 17) { long long x = 0; rep(j, 17) { if (1 & (i >> j)) { x ^= (long long)g << j; } } if (x <= 100000) { chmin(ans, memo[x]); } } cout << ans << '\n'; return 0; }