И зачем тогда надо было убирать BigInteger? Получилось только ненужное усложнение кода, при том что функциональность стала меньше.