Find the factorial of a large number

Hint

Normal integer data types can't store the result of large factorials, we need to use an array to represent the digits individually to perform a digit-by-digit multiplication. When multiplying with the next number in the factorial calculation, multiply each digit of the current result with the new number, handling carries appropriately. Algorithm outline:

Initialize:

Loop through numbers to multiply:

# Python implementation
def factorial(n):
  result = [1]

  for i in range(2, n + 1):
    carry = 0

    for j in range(len(result)):
      temp = result[j] * i + carry
      result[j] = temp % 10
      carry = temp // 10

    while carry > 0:
      result.append(carry % 10)
      carry //= 10

  return result

n = 50

print(''.join([str(x) for x in factorial(n)[::-1]]))
// Javascript implementation
const n = 50;

function factorial(n) {
  const result = [1];
  
  for (let i = 2; i <= n; i++) {
    let carry = 0;

    for (let j = 0; j < result.length; j++) {
      let temp = result[j] * i + carry;
      result[j] = temp % 10;
      carry = Math.floor(temp / 10);
    }

    while (carry > 0) {
      result.push(carry % 10);
      carry = Math.floor(carry / 10);
    }
  }

  return result.reverse().join("");
}

console.log(factorial(n));