Я бы не сказал, что модуль Integers подходит для вычислительных целей (возможно следует посмотреть специфические подсистемы наhttp://www.zinnamturm.de). Скорее, это учебный модуль.

Разница в скорости объясняется просто. В Java класс BigInteger поддерживается непосредственно виртуальной машиной, предполагаю, что там все тщательно оптимизированно. В ББ, модуль полностью выполнен на верхнем уровне, причем используются достаточно ресурсоемкие (для таких вещей) операции, например NEW.

Думаете Java работает быстро? Сревните с Maple. 20000! он считает (на моей машине) за 0,2 с. При том что ваш пример у меня работает 18 с, следовательно ваша машина быстрее моей.

Maple использует распространяемую по GPL библиотеку GMP. Сия штуковина написана на жуткой смеси C и Ассемблера и пересобирается под конкретный процессор со всей оптимизацией. Думаю, быстрее ее ничего нет. Теоретически ее можно привезать к ББ (как ДЛЛ). Если сделаете это и поделитесь опытом, выразим вам большую благодарность, т. к. проблема актуальна.

Другой вариант, написать для ББ модуль с CODE вставками.