Логика рабочая, всё проверил. Исключения дают правильное решение даже при введении нуля и отрицательных цифр. Условия проверки(16-19 строки) добавил, так как без него валидатор не пропускал по всем пунктам, а теперь только по последнему... Почему непонятно.