Рассмотрим этот метод, который хорошо работает:
public static bool mightBePrime(int N) {
BigInteger a = rGen.Next (1, N-1);
return modExp (a, N - 1, N) == 1;
}
Теперь, чтобы выполнить требование класса, который я принимаю, mightBePrime
должен принять BigInteger
N, но это означает, что мне нужен другой способ генерации моего случайного BigInteger a.
Моя первая идея заключалась в том, чтобы сделать что-то вроде BigInteger a = (N-1) * rGen.NextDouble ()
, но BigInteger не может быть умножен на double.
Как я могу создать случайный BigInteger между 1 и N-1, где N - BigInteger?