Слишком большие числа для таких алгоритмов. Эти алгоритмы слишком медленные.
Другими словами, мой ответ такой: Этот код работает, просто вам не хватит терпения дождаться его завершения.
Update: modulo, modulo1. Что в оригинальном алгоритме, что в итоге - несёт какую-то бессмыслицу.
Чтобы улучшить скорость, используйте вместо BigInteger обычный long.
Этот тип позволит поддерживать числа до 9223372036854775807.
А это число существенно больше тех чисел, которые можно проверить на простоту приведёнными выше алгоритмами, за разумное время.
Что касается скоростных тестов на простоту, то можете реализовать тест Рабина-Миллера.
Он сравнительно прост, и очень эффективен. Проблема его лишь в том, что он отвечает:
"Это число простое с вероятностью 99.9999%"
Зато вероятность эта может быть выбрана произвольно высоко.
Например, он может ошибаться в среднем в одном случае из миллиона.
Что касается точных проверок на простоту, такие реализовать сложнее.
И я не думаю что у вас стоит такая задача.