вроде те примеры, которые я могу придумать, он считает. объясните, что я делаю не так?
package com.javarush.task.task14.task1420;
import java.io.*;
/*
НОД
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(reader.readLine());
int b = Integer.parseInt(reader.readLine());
if ((a < 0) || (b < 0)) throw new Exception();
int min = Math.min(a, b);
int max = Math.max(a, b);
int sum = 0;
while (true) {
if (min == max) {
System.out.println(min);
break;
}
else {
max = max - min;
sum = min + max;
max = Math.max(min, max);
min = sum - max;
}
}
}
}