Логика рабочая, всё проверил. Исключения дают правильное решение даже при введении нуля и отрицательных цифр. Условия проверки(16-19 строки) добавил, так как без него валидатор не пропускал по всем пунктам, а теперь только по последнему... Почему непонятно.
package com.javarush.task.task14.task1420;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;
/*
НОД
*/
public class Solution {
public static void main(String[] args) throws Exception {
Scanner input = new Scanner(System.in);
int x = input.nextInt();
int y = input.nextInt();
if (Math.abs(x) == Math.abs(y) || x == 0 || y ==0) {
System.out.println(Math.max(Math.abs(x), Math.abs(y)));
return;
}
int minVal = Math.min(x, y);
int nod = Math.max(x, y) % minVal;
do {
nod = minVal % (minVal = nod);
} while (nod != 0);
nod = minVal;
System.out.println(nod);
}
}