Есть простой код вычисления факториала с использованием BigInteger
BigInteger res = BigInteger.ONE;
int n = 100;
for(int i = 1; i <= n; i++) {
res = res.multiply(BigInteger.valueOf(i));
}
System.out.print(res);
При вычислении факториала мы получаем число с множеством нолей в конце
961446671503512660926865558697259548455355905059659464369444714048531715130254590603314961882364451384985595980362059157503710042865532928000000000000000000000000
Почему так происходит?