#include #include #include #define llint long long using namespace std; llint n; llint cnt[100005]; bool prime[100005]; vector pvec; llint a[100005], b[2000005]; void GaussianElimination(llint a[], int n) { llint r = 0; for(int i = 59; i >= 0 && r < n; i--){ //上位ビットから見ていく if((a[r]&(1LL<> n; for(int i = 0; i < n; i++){ cin >> a[i]; cnt[a[i]] += a[i]; } for(int i = 2; i < 100005; i++){ if(prime[i]) continue; for(int j = 2*i; j < 100005; j+=i) prime[j] = true; } for(int i = 2; i < 100005; i++){ if(prime[i]) continue; for(int j = 100004/i; j >= 1; j--){ cnt[j] += cnt[j*i]; } } for(int i = 0; i < n; i++){ for(int j = 0; j < 20; j++){ b[j*n+i] = a[i] << j; } } GaussianElimination(b, n*20); //for(int i = 0; i < 50; i++) cout << bitset<30>(b[i]) << endl; llint sum = 0; for(int i = 0; i < n; i++) sum += a[i]; llint ans = sum+1; for(int i = 1; i <= 100000; i++){ llint tmp = 0, pre = -1; for(int j = 39; j >= 0; j--){ bool found = false; for(int k = pre+1; k < 50; k++){ if(b[k]&(1LL<