a должно быть "выбрать случайным образом в диапазоне (1, n - 1]"), и я не вижу, чтобы это произошло. Вы можете напечатать a, чтобы проверить это.
Что касается того, как это сделатьчто:
BigInteger a = BigInteger.valueOf(random.nextInt(n-2)+2);
Например, вы не должны использовать конструктор BigInteger со случайным аргументом, это просто источник случайности, но a должно быть случайным значением .
'random.nextInt (n-1) +1' происходит из определения nextInt , которое при заданном аргументе k возвращает случайное значение от 0 до k включительно1. И вы хотите, чтобы a был больше 1 и меньше n.