Вроде бы все работает как надо.
package com.javarush.task.task14.task1420;
/*
НОД
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int x1 = Integer.parseInt(reader.readLine());
int x2 = Integer.parseInt(reader.readLine());
if (x1 <= 0 || x2 <= 0){
throw new Exception();
}
reader.close();
System.out.println(nod(x1,x2));
}
public static int nod(int x1, int x2) {
int min;
int n = 1;
if (x1 < x2) min = x1;
else min = x2;
for (int i = min; i > 3; i--) {
if (x1 % i == 0 && x2 % i == 0) {
n = i;
break;
}
}
return n;
}
}
/*
НОД
Наибольший общий делитель (НОД).
Ввести с клавиатуры 2 целых положительных числа.
Вывести в консоль наибольший общий делитель.
Требования:
1. Программа должна считывать с клавиатуры 2 строки.
2. В случае если введенные строки невозможно преобразовать
в положительные целые числа, должно возникать исключение.
3. Программа должна выводить данные на экран.
4. Программа должна выводить на экран наибольший общий делитель(НОД)
чисел считанных с клавиатуры и успешно завершаться.*/