#include #include #include #include using namespace std; const int MAX_N = 1000; const int MAX_A = 1e9; vector sieve(int limit) { vector is_prime(limit + 1, true); vector primes; is_prime[0] = is_prime[1] = false; for (int i = 2; i <= limit; ++i) { if (is_prime[i]) { primes.push_back(i); for (int j = i * 2; j <= limit; j += i) { is_prime[j] = false; } } } return primes; } int main() { int n; cin >> n; vector a(n); for (int i = 0; i < n; ++i) { cin >> a[i]; } int sqrt_max_a = sqrt(MAX_A); vector primes = sieve(sqrt_max_a); int max_sum = 0; for (int p : primes) { int current_sum = 0; for (int i = 0; i < n; ++i) { if (a[i] % p == 0) { current_sum += a[i]; } } max_sum = max(max_sum, current_sum); } cout << max_sum << endl; return 0; }