#include #include #include #include #include #include #include int gcd(int a, int b) { if (a == 0) return b; return gcd(b%a, a); } int findGCD(int arr[], int n,int m) { int result = arr[0]; for (int i=n; i<=m; i++) result = gcd(arr[i], result); return result; } long int maximumValue(int a_size, int* a) { int max= a[0];int rem_i;int rem_j; for(int i=0;ilocal){ local=a[k]; } } if(sum-local!=0){ gc=findGCD(a,i,j); if(gc*(sum-local)>max){ max=gc*(sum-local); rem_i=i; rem_j=j; } } } } return max; } int main() { int n; scanf("%i", &n); int *a = malloc(sizeof(int) * n); for (int a_i = 0; a_i < n; a_i++) { scanf("%i",&a[a_i]); } long int result = maximumValue(n, a); printf("%ld\n", result); return 0; }