Approach to the problem

how to approach to this problem?

Hey @tusharbhardwaj127
You have to find the factorial of very large numbers.
You can’t store the factorials of 100, 200… for that you can use array which can store upto 10^6 size.
Basic idea would be:

  1. Create an array ‘res[]’ of MAX size where MAX is number of maximum digits in output.
  2. Initialize value stored in ‘res[]’ as 1 and initialize ‘res_size’ (size of ‘res[]’) as 1.
  3. Do following for all numbers from x = 2 to n.
    ……a) Multiply x with res[] and update res[] and res_size to store the multiplication result.

multiply(res[], x)

  1. Initialize carry as 0.
  2. Do following for i = 0 to res_size – 1
    ….a) Find value of res[i] * x + carry. Let this value be prod.
    ….b) Update res[i] by storing last digit of prod in it.
    ….c) Update carry by storing remaining digits in carry.
  3. Put all digits of carry in res[] and increase res_size by number of digits in carry.