Implementación de la prueba de primalidad de Fermat

¿Quién quiere ayudarme con mi tarea?

Estoy tratando de implementarPrueba de primalidad de Fermat en Java usando BigIntegers. Mi implementación es la siguiente, pero desafortunadamente no funciona. ¿Algunas ideas?

public static boolean checkPrime(BigInteger n, int maxIterations)
{
    if (n.equals(BigInteger.ONE))
        return false;

    BigInteger a;
    Random rand = new Random();

    for (int i = 0; i < maxIterations; i++)
    {
        a = new BigInteger(n.bitLength() - 1, rand);
        a = a.modPow(n.subtract(BigInteger.ONE), n);

        if (!a.equals(BigInteger.ONE))
            return false;
    }

    return true;
}

Soy nuevo en BigIntegers.

¡Gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta