class Main {
public static void main(String[] args) {
System.out.println(divideToSquare(1680, 640));
System.out.println(divideToSquare(640, 1680));
int[] arr1 = new int[]{1,2,3,4,5};
int sum1 = recursiveSum(arr1, 0, arr1.length - 1);
System.out.println(sum1);
int[] arr2 = new int[]{1,2,3,4,5};
int sum2 = iterativeSum(arr2);
System.out.println(sum2);
}
public static int divideToSquare(int length, int width) {
if (length % width == 0) {
return width;
}
return divideToSquare(width, length % width);
}
public static int divideToSquareIter(int length, int width) {
int w = length % width;
while(w > 0) {
length = width;
width = w;
w = length % width;
}
return width;
}
public static int recursiveSum(int[] arr, int start, int end) {
if (start == end) {
return arr[start];
}
int mid = (start + end) / 2;
int leftSum = recursiveSum(arr, start, mid);
int rightSum = recursiveSum(arr, mid + 1, end);
return leftSum + rightSum;
}
public static int iterativeSum(int[] arr) {
int n = arr.length;
int sum = 0;
for (int i = 0; i < n; ++i) {
sum += arr[i];
}
return sum;
}
}