Приветствую, подскажите пожалуйста, что делаю не так? Прочитал обсуждения данной задачи, закомментировал любой вывод кроме непосредственно НОД. Проверял задачу на разных числах, работает вроде верно. Не понимаю в чем ошибка :(
package com.javarush.task.task14.task1420;
//import java.io.BufferedReader;
//import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Scanner;
/*
НОД
*/
public class Solution {
public static void main(String[] args) throws Exception {
//Вводим с клавиатуры два положительных целых числа
int[] array = new int[2];
Scanner sc = new Scanner(System.in);
int number1;
int number2;
for (int i = 0; i < array.length; i++) {
if (sc.hasNextLine()) {
array[i] = Integer.parseInt(sc.nextLine());
if (array[i] < 0) {
System.out.println("Необходимо положительное число!");
break;
}
}
}
sc.close();
number1 = array[0];
number2 = array[1];
// System.out.println("Число1: " + number1);
// System.out.println("Число2: " + number2);
//конец блока с вводом чисел
//Находим НОД
int index = 1; // остаток
int result; // НОД
//создаем список для хранения остатков
ArrayList<Integer> arrayList = new ArrayList<>();
//находим максимум из двух чисел
int max = Math.max(number1, number2);
//определяем оставшееся число минимумом
int min = number1 == max ? number2 : number1;
while (index > 0) {
index = max % min;
arrayList.add(index);
max = min;
min = index;
}
result = arrayList.get(arrayList.size() - 2);
System.out.println(result);
//System.out.println("Наибольшийй общий делитель (НОД): " + result);
}
}