Cómo entender el código en el tutorial de Code Chef para factoriales grandes

Técnica básica utilizada:

Para multiplicar 1456 con 24, puede multiplicar 24 con 6. Almacene el último dígito (x% 10) en la respuesta y lleve (x / 10) en temp, luego multiplique nuevamente 24 con 5 y agregue el carry (temp) anterior al resultado, luego 24 * 4 + carry luego 24 * 1 + carry..thus:

x = a [j] * i + temp se forma.

Aquí para calcular el factorial “n!” Tienes que multiplicar n * (n-1) * (n-2) … .. * 2 * 1.
Por lo tanto, outter for loop comienza de 1 a n e interno for loop multiplica i con (a [j]). El valor inicial de a [j] es 1.

El resultado, es decir, el factorial del número se almacena en una matriz ya que el lenguaje C no puede almacenar enteros con un tamaño muy grande en un tipo de datos incorporado. Por ejemplo, 100! El resultado tendrá 24 ceros y será un gran número, por lo que se almacenará en una matriz.

En el último ciclo while, el valor de acarreo, es decir, la temperatura, se almacena en la matriz comenzando desde el último dígito hasta el primer dígito.

Por ejemplo: si carry = 134 después de que finaliza el ciclo for, 134% 10 == 4 se almacena en la matriz y carry = carry / 10, que es 134/10 == 13. El ciclo continúa hasta que carry sea 0

Es posible que desee intentar leer Introducción a los algoritmos (libro de Cormen, Leiserson, Rivest y Stein) primero para entender los conceptos básicos.
Dado que la respuesta en CodeChef es lo suficientemente buena para entender si conoce todas las terminologías subyacentes y los conceptos.