#include #include #include using namespace std; int main() { cin.tie(0); ios_base::sync_with_stdio(false); int N; cin >> N; vector A(N); map mp; int g = 0; long long sum = 0; for(int i = 0; i < N; ++i) { cin >> A[i]; sum += A[i]; // calc gcd int a = g, b = A[i]; while(true) { if(a < b) swap(a, b); if(b == 0) break; int c = b; while(__builtin_clz(a) != __builtin_clz(c)) c <<= 1; c = a ^ c; a = b, b = c; } g = a; // calc divisors of A[i] int n = A[i]; for(int j = 1; j * j <= n; ++j) { if(n % j == 0) { mp[j] += A[i] - n / j; if(n / j != j) mp[n / j] += A[i] - j; } } } long long ans = 0; for(auto m : mp) { int div = m.first; while(div >= g) { int h = g; while(__builtin_clz(div) != __builtin_clz(h)) h <<= 1; div ^= h; } if(div == 0) ans = max(ans, m.second); } cout << sum - ans << '\n'; return 0; }